package a.f.d.a;

import a.c.ab;
import a.c.bb;
import a.c.e;
import a.c.k;
import a.c.m;
import a.c.n;
import a.c.v;
import a.c.w;
import a.c.x;
import a.c.z;
import a.i.l;

import java.util.*;

class kb
{
  private static final double a = Math.sqrt(2.0D);
  private Map b = new HashMap(11);
  private List c = new ArrayList(62);
  private double d;
  private double e = -1.797693134862316E+308D;
  private double f = 1.7976931348623157E+308D;
  private double g = 10.0D;
  private Map h = new HashMap();
  private List j = new ArrayList();
  private Map k = new HashMap();
  private Set l = new HashSet();
  private a.d.f m;
  private a.d.f n;
  private double o = 0.0D;
  private boolean p = true;
  private double q = 1.0D;
  private double r = 0.5D;
  private double s;
  private double t = 0.0D;
  private ArrayList u = new ArrayList();
  private static final int v = 0;
  private static final int w = 2;
  private static final int x = 0;
  private static final int z = 1;
  private static final int A = 2;
  private int B = 20;
  private long C = 100L;
  private int D = 100;
  private int E = 500;
  private final Comparator F = new h_(null);
  private List G;
  private z H;
  private z I;
  private double J;
  private double K;
  private static final double L = 0.001D;
  
  public double a()
  {
    return this.e;
  }
  
  public void a(double paramDouble)
  {
    this.e = paramDouble;
  }
  
  public void b()
  {
    this.s = 0.0D;
    this.l.clear();
    this.k.clear();
    this.j.clear();
    this.h.clear();
    this.b.clear();
    this.u.clear();
    this.c.clear();
    this.t = 0.0D;
    this.d = -1.0D;
    this.G = null;
  }
  
  public void b(double paramDouble)
  {
    this.o = paramDouble;
  }
  
  public double c()
  {
    return this.o;
  }
  
  public void c(double paramDouble)
  {
    this.t = paramDouble;
  }
  
  public double d()
  {
    return this.t;
  }
  
  public void a(a.d.f paramf)
  {
    this.m = paramf;
  }
  
  public void c(a.d.f paramf)
  {
    this.n = paramf;
  }
  
  public a.d.f e()
  {
    return this.m;
  }
  
  public a.d.f f()
  {
    return this.n;
  }
  
  public void a(Object paramObject, double paramDouble1, boolean paramBoolean1, double paramDouble2, boolean paramBoolean2)
  {
    a(paramObject, 0.0D, this.g, paramDouble1, paramBoolean1, paramDouble2, paramBoolean2);
  }
  
  public void a(Object paramObject, double paramDouble1, boolean paramBoolean1, double paramDouble2, boolean paramBoolean2, boolean paramBoolean3, double paramDouble3)
  {
    a(paramObject, 0.0D, this.g, paramDouble1, paramBoolean1, paramDouble2, paramBoolean2, paramBoolean3, paramDouble3);
  }
  
  public g_ a(Object paramObject)
  {
    return (g_)this.b.get(paramObject);
  }
  
  public Iterator g()
  {
    return this.b.values().iterator();
  }
  
  public g_ a(Object paramObject, double paramDouble1, double paramDouble2, double paramDouble3, boolean paramBoolean1, double paramDouble4, boolean paramBoolean2)
  {
    return a(paramObject, paramDouble1, paramDouble2, paramDouble2, paramDouble3, paramBoolean1, paramDouble4, paramBoolean2);
  }
  
  public g_ a(Object paramObject, double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, boolean paramBoolean1, double paramDouble5, boolean paramBoolean2)
  {
    return a(paramObject, paramDouble1, paramDouble2, paramDouble3, paramDouble4, paramBoolean1, paramDouble5, paramBoolean2, false, 0.0D);
  }
  
  public g_ a(Object paramObject, double paramDouble1, double paramDouble2, double paramDouble3, boolean paramBoolean1, double paramDouble4, boolean paramBoolean2, boolean paramBoolean3, double paramDouble5)
  {
    return a(paramObject, paramDouble1, paramDouble2, paramDouble2, paramDouble3, paramBoolean1, paramDouble4, paramBoolean2, paramBoolean3, paramDouble5);
  }
  
  public g_ a(Object paramObject, double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, boolean paramBoolean1, double paramDouble5, boolean paramBoolean2, boolean paramBoolean3, double paramDouble6)
  {
    g_ localg_;
    if (paramDouble4 > paramDouble5)
    {
      localg_ = g_.a(paramObject, paramDouble1, paramDouble5, paramBoolean2, paramDouble4, paramBoolean1, paramDouble2, paramDouble3, paramBoolean3, paramDouble6);
      if (d.R) {
        break label101;
      }
      if (!d.Q) {}
    }
    else
    {
      localg_ = g_.a(paramObject, paramDouble1, paramDouble4, paramBoolean1, paramDouble5, paramBoolean2, paramDouble2, paramDouble3, paramBoolean3, paramDouble6);
    }
    this.b.put(paramObject, localg_);
    this.c.add(localg_);
    label101:
    this.l.add(paramObject);
    return localg_;
  }
  
  public g_ a(Object paramObject1, Object paramObject2, double paramDouble1, boolean paramBoolean1, double paramDouble2, boolean paramBoolean2)
  {
    return a(paramObject1, paramObject2, 0.0D, this.g, paramDouble1, paramBoolean1, paramDouble2, paramBoolean2);
  }
  
  public g_ a(Object paramObject1, Object paramObject2, double paramDouble1, double paramDouble2, double paramDouble3, boolean paramBoolean1, double paramDouble4, boolean paramBoolean2)
  {
    return a(paramObject1, paramObject2, paramDouble1, paramDouble2, paramDouble3, paramBoolean1, paramDouble4, paramBoolean2, false, 0.0D);
  }
  
  public g_ a(Object paramObject1, Object paramObject2, double paramDouble1, double paramDouble2, double paramDouble3, boolean paramBoolean1, double paramDouble4, boolean paramBoolean2, boolean paramBoolean3, double paramDouble5)
  {
    z localz = (z)this.h.get(paramObject2);
    if (!d.R) {
      if (localz == null)
      {
        localz = new z();
        this.h.put(paramObject2, localz);
        this.j.add(localz);
      }
    }
    g_ localg_ = g_.a(paramObject1, paramDouble1, paramDouble3, paramBoolean1, paramDouble4, paramBoolean2, paramDouble2, paramDouble2, paramBoolean3, paramDouble5);
    localz.add(localg_);
    this.k.put(paramObject1, localz);
    return localg_;
  }
  
  public void a(Object paramObject1, Object paramObject2, int paramInt)
  {
    this.u.add(new Object[] { paramObject1, paramObject2, new Integer(paramInt) });
  }
  
  public Iterator h()
  {
    return this.l.iterator();
  }
  
  public boolean b(Object paramObject)
  {
    return this.l.contains(paramObject);
  }
  
  public boolean c(Object paramObject)
  {
    Object localObject = this.h.get(paramObject);
    if (localObject != null) {
      if (d.R) {}
    }
    return this.b.containsKey(localObject);
  }
  
  public long i()
  {
    return this.C;
  }
  
  public void a(long paramLong)
  {
    this.C = paramLong;
  }
  
  public int j()
  {
    return this.D;
  }
  
  public void a(int paramInt)
  {
    this.D = paramInt;
  }
  
  public int k()
  {
    return this.B;
  }
  
  public void b(int paramInt)
  {
    this.B = paramInt;
  }
  
  public int l()
  {
    return this.E;
  }
  
  public void d(int paramInt)
  {
    this.E = paramInt;
  }
  
  public void m()
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    if ((bool2) || (this.h.size() > 0)) {
      v();
    }
    Comparator local0 = new Comparator()
    {
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        if (!d.R) {
          if (paramAnonymousObject1 == paramAnonymousObject2) {
            return 0;
          }
        }
        kb.g_ localg_1 = (kb.g_)paramAnonymousObject1;
        kb.g_ localg_2 = (kb.g_)paramAnonymousObject2;
        return l.a(localg_1.h, localg_2.h);
      }
    };
    this.G = new ArrayList();
    g_[] arrayOfg_1 = new g_[this.c.size()];
    this.J = 1.7976931348623157E+308D;
    this.K = -1.797693134862316E+308D;
    int i = this.c.size() - 1;
    do
    {
      do
      {
        if (i < 0) {
          break;
        }
        localObject1 = (g_)this.c.get(i);
        this.K = Math.max(this.K, ((g_)localObject1).g);
        this.J = Math.min(this.J, ((g_)localObject1).f);
        if ((!bool2) && (bool1)) {
          break label174;
        }
        arrayOfg_1[i] = localObject1;
        i--;
      } while (!bool1);
    } while (bool2);
    label174:
    g_[] arrayOfg_2 = new g_[arrayOfg_1.length];
    System.arraycopy(arrayOfg_1, 0, arrayOfg_2, 0, arrayOfg_1.length);
    Object localObject1 = new d_[arrayOfg_2.length * 2];
    int i1 = 0;
    d_ locald_2;
    do
    {
      do
      {
        if (i1 >= arrayOfg_2.length) {
          break;
        }
        localObject2 = arrayOfg_2[i1];
        d_ locald_1 = new d_(null);
        locald_1.c = (((g_)localObject2).f - ((g_)localObject2).l - ((g_)localObject2).i);
        locald_1.e = true;
        locald_1.a = ((g_)localObject2);
        localObject1[(i1 * 2)] = locald_1;
        locald_2 = new d_(null);
        locald_2.c = (((g_)localObject2).g + ((g_)localObject2).l + ((g_)localObject2).i);
        locald_2.e = false;
        locald_2.a = ((g_)localObject2);
        localObject1[(i1 * 2 + 1)] = locald_2;
        i1++;
        if ((!bool2) && (bool1)) {
          break label358;
        }
      } while (!bool1);
      l.a((Object[])localObject1, new Comparator()
      {
        public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
        {
          return l.a(((kb.d_)paramAnonymousObject1).c, ((kb.d_)paramAnonymousObject2).c);
        }
      });
    } while (bool2);
    i1 = 0;
    label358:
    Object localObject2 = new ArrayList(arrayOfg_2.length);
    int i2 = 0;
    label389:
    label423:
    label712:
    label986:
    label991:
    label1257:
    label1268:
    label1407:
    do
    {
      Object localObject3;
      do
      {
        if (i2 >= localObject1.length) {
          break label2611;
        }
        locald_2 = localObject1[i2];
        if ((!bool2) && (bool1)) {
          return;
        }
        int i3;
        a.c.q localq1;
        if (!bool2)
        {
          if (locald_2.e)
          {
            i1++;
            locald_2.a.w = ((ArrayList)localObject2).size();
            break label712;
            ((ArrayList)localObject2).add(locald_2.a);
            if (bool2) {
              break label2608;
            }
            if (!bool1) {
              break;
            }
          }
          else
          {
            i1--;
          }
        }
        else
        {
          if (bool2) {
            break label2608;
          }
          if (i1 != 0) {
            break;
          }
          i3 = ((ArrayList)localObject2).size();
          if ((!bool2) && (i3 <= 1)) {
            break label2548;
          }
          localObject3 = new e[i3];
          localq1 = new a.c.q();
        }
        a.c.q localq2;
        x localx1;
        do
        {
          n localn1;
          n localn2;
          Object localObject7;
          Object localObject8;
          x localx3;
          do
          {
            localq2 = new a.c.q();
            localq2 = new a.c.q();
            e[] arrayOfe;
            if (i3 > this.B)
            {
              localq2 = null;
              localx1 = null;
              arrayOfe = null;
            }
            else
            {
              localx1 = localq2.B();
            }
            x localx2;
            int i5;
            do
            {
              arrayOfe = new e[((ArrayList)localObject2).size()];
              localn1 = localq1.C();
              localn2 = localq1.C();
              localx2 = a.i.db.a();
              int i4 = 0;
              do
              {
                if (i4 >= i3) {
                  break label651;
                }
                localObject3[i4] = localq1.i();
                localx2.a(localObject3[i4], ((ArrayList)localObject2).get(i4));
                if (bool1) {
                  break;
                }
                if (localq2 != null) {
                  localx1.a(arrayOfe[i4] =  = localq2.i(), ((ArrayList)localObject2).get(i4));
                }
                i4++;
              } while (!bool1);
              i5 = 0;
            } while (bool2);
            Iterator localIterator = this.u.iterator();
            Object localObject5;
            int i8;
            do
            {
              g_ localg_1;
              do
              {
                do
                {
                  do
                  {
                    do
                    {
                      do
                      {
                        do
                        {
                          if (!localIterator.hasNext()) {
                            break;
                          }
                          localObject4 = (Object[])localIterator.next();
                          localg_1 = a(localObject4[0]);
                          localObject5 = a(localObject4[1]);
                        } while (localg_1 == null);
                        if (bool2) {
                          break label423;
                        }
                        if (bool1) {
                          break;
                        }
                      } while ((localObject5 == null) || (((bool2) || ((localg_1.w < 0) || (!bool2))) && ((localg_1.w >= i3) || (((ArrayList)localObject2).get(localg_1.w) != localg_1) || (((bool2) || ((((g_)localObject5).w < 0) || (!bool2))) && ((((g_)localObject5).w >= i3) || ((!bool2) && (((ArrayList)localObject2).get(((g_)localObject5).w) != localObject5)))))));
                      i8 = ((Integer)localObject4[2]).intValue();
                    } while (bool2);
                  } while (i8 <= 0);
                  localObject7 = localq1.a(localObject3[localg_1.w], localObject3[localObject5.w]);
                  i5++;
                  localn1.a(localObject7, 3);
                  localn2.a(localObject7, 1);
                } while (((!bool2) && (localq2 == null)) || ((!bool2) && (localq2.b(arrayOfe[localg_1.w], arrayOfe[localObject5.w]))));
                if (bool2) {
                  break label986;
                }
              } while (localq2.b(arrayOfe[localObject5.w], arrayOfe[localg_1.w]));
              if (bool2) {
                break label991;
              }
              localq2.a(arrayOfe[localg_1.w], arrayOfe[localObject5.w]);
            } while (!bool1);
            if (localq2 == null)
            {
              if ((!bool2) && (i5 >= this.E)) {}
            }
            else
            {
              int i6 = 0;
              do
              {
                if (i6 >= i3) {
                  break label1644;
                }
                localObject4 = (g_)((ArrayList)localObject2).get(i6);
                if (bool1) {
                  break;
                }
                int i7 = i6 + 1;
                do
                {
                  do
                  {
                    if (i7 >= i3) {
                      break;
                    }
                    localObject5 = (g_)((ArrayList)localObject2).get(i7);
                    if (bool1) {
                      break label1651;
                    }
                    if (localq2 != null)
                    {
                      if (bool2) {
                        break label1496;
                      }
                      if (((g_)localObject4).g + ((g_)localObject4).l + ((g_)localObject4).i > ((g_)localObject5).f - ((g_)localObject5).l - ((g_)localObject5).i)
                      {
                        if (bool2) {
                          break label1496;
                        }
                        if (((g_)localObject4).f - ((g_)localObject4).l - ((g_)localObject4).i < ((g_)localObject5).g + ((g_)localObject5).l + ((g_)localObject5).i)
                        {
                          i8 = 1;
                          if (!bool2) {
                            if (((g_)localObject4).f - ((g_)localObject4).i > ((g_)localObject5).g + ((g_)localObject5).i)
                            {
                              if (!bool2) {
                                if (((g_)localObject4).r != 0)
                                {
                                  if (bool2) {
                                    break label1268;
                                  }
                                  if (((g_)localObject4).r != 2) {
                                    break label1257;
                                  }
                                }
                              }
                              if (!bool2)
                              {
                                if (((g_)localObject5).r != 1)
                                {
                                  if (bool2) {
                                    break label1429;
                                  }
                                  if (((g_)localObject5).r != 0) {
                                    break label1427;
                                  }
                                }
                                i8 = 0;
                              }
                              if (bool2) {
                                break label1429;
                              }
                              if (!bool1) {
                                break label1427;
                              }
                              if (!bool2)
                              {
                                if (((g_)localObject5).r != 3)
                                {
                                  if (bool2) {
                                    break label1429;
                                  }
                                  if (((g_)localObject5).r != 2) {
                                    break label1427;
                                  }
                                }
                                i8 = 0;
                              }
                              if (bool2) {
                                break label1429;
                              }
                              if (!bool1) {
                                break label1427;
                              }
                            }
                          }
                          if (!bool2) {
                            if (((g_)localObject5).f - ((g_)localObject5).i > ((g_)localObject4).g + ((g_)localObject4).i)
                            {
                              if (!bool2) {
                                if (((g_)localObject4).r != 0)
                                {
                                  if (bool2) {
                                    break label1407;
                                  }
                                  if (((g_)localObject4).r != 1) {
                                    break label1396;
                                  }
                                }
                              }
                              if (!bool2)
                              {
                                if (((g_)localObject5).r != 2)
                                {
                                  if (bool2) {
                                    break label1429;
                                  }
                                  if (((g_)localObject5).r != 0) {}
                                }
                                else
                                {
                                  i8 = 0;
                                }
                              }
                              else
                              {
                                if (bool2) {
                                  break label1429;
                                }
                                if (bool1)
                                {
                                  if (!bool2) {
                                    if (((g_)localObject5).r != 3)
                                    {
                                      if (bool2) {
                                        break label1429;
                                      }
                                      if (((g_)localObject5).r != 1) {
                                        break label1427;
                                      }
                                    }
                                  }
                                  i8 = 0;
                                }
                              }
                            }
                          }
                          if (bool2) {
                            break label1496;
                          }
                          if ((i8 != 0) && ((bool2) || (arrayOfe[i6].c(arrayOfe[i7]) == null)))
                          {
                            localq2.a(arrayOfe[i6], arrayOfe[i7]);
                            if (bool2) {
                              break label1505;
                            }
                            if (localq2.l() > this.D) {
                              localq2 = null;
                            }
                          }
                        }
                      }
                    }
                    if (!bool2)
                    {
                      if (i5 < this.E)
                      {
                        i8 = a((g_)localObject4, (g_)localObject5);
                        if (bool2) {
                          continue;
                        }
                        if (i8 != 0)
                        {
                          i5++;
                          if (i8 > 0)
                          {
                            localObject7 = localq1.a(localObject3[i6], localObject3[i7]);
                            localn1.a(localObject7, i8);
                            localn2.a(localObject7, 1);
                            if (bool2) {
                              continue;
                            }
                            if (!bool1) {}
                          }
                          else
                          {
                            localObject7 = localq1.a(localObject3[i7], localObject3[i6]);
                            localn1.a(localObject7, -i8);
                            localn2.a(localObject7, 1);
                          }
                        }
                      }
                      i7++;
                    }
                  } while (!bool1);
                  i6++;
                } while (bool2);
              } while (!bool1);
            }
            if (bool2) {
              break label2616;
            }
            e locale1 = localq1.i();
            Object localObject4 = localq1.i();
            a.c.d locald1 = localq1.a(locale1, (e)localObject4);
            localn1.a(locald1, 0);
            do
            {
              localObject5 = localq1.v();
              do
              {
                if (!((w)localObject5).e()) {
                  break label1901;
                }
                localObject6 = ((w)localObject5).d();
                if (bool1) {
                  break;
                }
                if ((bool2) || ((localObject6 != locale1) && ((bool2) || (localObject6 != localObject4))))
                {
                  localObject7 = (g_)localx2.get(localObject6);
                  if (bool2) {
                    continue;
                  }
                  if (localObject7 != null)
                  {
                    a.c.d locald2;
                    if (!bool2) {
                      if (((g_)localObject7).a() == 0)
                      {
                        locald2 = localq1.a((e)localObject6, locale1);
                        localn1.a(locald2, 0);
                        if (bool2) {
                          continue;
                        }
                        if (!bool1) {
                          break label1889;
                        }
                      }
                    }
                    if (((g_)localObject7).a() == 3)
                    {
                      locald2 = localq1.a((e)localObject4, (e)localObject6);
                      localn1.a(locald2, 0);
                      if (bool2) {
                        continue;
                      }
                      if (!bool1) {}
                    }
                    else
                    {
                      locald2 = localq1.a(locale1, (e)localObject6);
                      localn1.a(locald2, 0);
                      localObject8 = localq1.a((e)localObject6, (e)localObject4);
                      localn1.a(localObject8, 0);
                    }
                  }
                }
                ((w)localObject5).f();
              } while (!bool1);
              localObject5 = new int[4];
            } while (bool2);
            Object localObject6 = null;
            do
            {
              do
              {
                do
                {
                  if ((localObject6 = a.a.f.a(localq1, true)).isEmpty()) {
                    break;
                  }
                  localObject7 = ((ab)localObject6).m();
                  i9 = localn1.getInt(localObject7);
                } while (bool1);
                localObject8 = ((ab)localObject6).l();
                do
                {
                  if (!((m)localObject8).e()) {
                    break label2021;
                  }
                  localObject9 = ((m)localObject8).a();
                  int i11 = localn1.getInt(localObject9);
                  if (bool1) {
                    break;
                  }
                  if (i11 < i9)
                  {
                    i9 = i11;
                    localObject7 = localObject9;
                  }
                  ((m)localObject8).f();
                } while (!bool1);
                localObject8 = localq1.i();
                localObject9 = localq1.a(((a.c.d)localObject7).f(), (e)localObject8);
                localn1.a(localObject9, -i9);
                localObject5[i9] += 1;
                localq1.a((a.c.d)localObject7, ((a.c.d)localObject7).e(), (e)localObject8);
                if (bool2) {
                  break label389;
                }
              } while (!bool1);
              localObject7 = new int[4];
              localObject7[0] = 1;
            } while (bool2);
            int i9 = 1;
            do
            {
              if (i9 >= 3) {
                break;
              }
              localObject7[i9] = (localObject5[i9] * localObject7[(i9 - 1)] + 1);
              i9++;
              if ((!bool2) && (bool1)) {
                break label2548;
              }
            } while (!bool1);
            localx3 = a.i.db.a(new int[localq1.k()]);
            localObject8 = a.i.db.b(new int[localq1.m()]);
          } while (bool2);
          Object localObject9 = localq1.w();
          a.c.d locald3;
          do
          {
            if (!((m)localObject9).e()) {
              break;
            }
            locald3 = ((m)localObject9).a();
            int i12 = localn1.getInt(locald3);
            if (bool1) {
              break label2274;
            }
            if (i12 < 0) {
              ((n)localObject8).a(locald3, localObject7[(-i12)]);
            }
            ((m)localObject9).f();
          } while (!bool1);
          a.a.db.a(localq1, localx3, (k)localObject8, localn2, this.C);
          if (bool2) {
            break label2548;
          }
          int i10 = 0;
          do
          {
            if (i10 >= localObject3.length) {
              break label2389;
            }
            locald3 = localObject3[i10];
            g_ localg_2 = (g_)((ArrayList)localObject2).get(i10);
            localg_2.h = localx3.getInt(locald3);
            if (bool1) {
              break;
            }
            if (localg_2.r == 0)
            {
              localg_2.h -= 0.25D;
              if (bool2) {
                continue;
              }
              if (!bool1) {}
            }
            else
            {
              if (bool2) {
                continue;
              }
              if (localg_2.r == 3) {
                localg_2.h += 0.25D;
              }
            }
            i10++;
          } while (!bool1);
        } while (bool2);
        if (((bool2) || (localq2 != null)) && ((bool2) || (localq2.l() < this.D)))
        {
          bb[] arrayOfbb = a.a.q.a(localq2);
          double d1 = 0.2D / arrayOfbb.length;
          int i13 = 0;
          do
          {
            if (i13 >= arrayOfbb.length) {
              break label2548;
            }
            if (bool1) {
              break;
            }
            w localw = arrayOfbb[i13].l();
            do
            {
              if (!localw.e()) {
                break;
              }
              e locale2 = localw.d();
              g_ localg_3 = (g_)localx1.get(locale2);
              localg_3.h += d1 * i13;
              localw.f();
              if (bool2) {
                break label2545;
              }
              if (bool1) {
                break label2543;
              }
            } while (!bool1);
            if (!bool2) {
              i13++;
            }
          } while (!bool1);
        }
        localObject3 = (g_[])((ArrayList)localObject2).toArray(new g_[((ArrayList)localObject2).size()]);
        ((ArrayList)localObject2).clear();
        l.a((Object[])localObject3, this.F);
        l.a((Object[])localObject3, local0);
      } while (bool2);
      this.G.add(localObject3);
      i2++;
    } while (!bool1);
    label651:
    label1396:
    label2548:
    if (!bool2) {
      n();
    }
    label1427:
    label1429:
    label1496:
    label1505:
    label1644:
    label1651:
    return;
  }
  
  private int a(g_ paramg_1, g_ paramg_2)
  {
    boolean bool3 = d.R;
    if (!bool3) {
      if (paramg_1.g + paramg_1.l < paramg_2.f - paramg_2.l) {
        return 0;
      }
    }
    if (!bool3) {
      if (paramg_1.f - paramg_1.l > paramg_2.g + paramg_2.l) {
        return 0;
      }
    }
    if (!bool3) {
      if (paramg_2.a() == paramg_1.a())
      {
        if (!bool3) {
          switch (paramg_2.a())
          {
          case 0: 
          default: 
            if (!bool3) {
              if (paramg_1.f == paramg_2.f)
              {
                if (!bool3) {
                  if (paramg_1.g < paramg_2.g) {
                    return 1;
                  }
                }
                if (!bool3) {
                  if (paramg_1.g == paramg_2.g) {
                    return 0;
                  }
                }
                return -1;
              }
            }
            if (!bool3) {
              if (paramg_1.g == paramg_2.g)
              {
                if (!bool3) {
                  if (paramg_1.f > paramg_2.g) {
                    return 1;
                  }
                }
                return -1;
              }
            }
            if (!bool3) {
              if (paramg_1.f < paramg_2.f)
              {
                if (!bool3) {
                  if (paramg_1.g > paramg_2.g) {
                    return -2;
                  }
                }
                return 0;
              }
            }
            if (!bool3) {
              if (paramg_1.g < paramg_2.g) {
                return 2;
              }
            }
            return 0;
          case 3: 
            if (!bool3) {
              if (paramg_1.f == paramg_2.f)
              {
                if (!bool3) {
                  if (paramg_1.g < paramg_2.g) {
                    return -1;
                  }
                }
                if (!bool3) {
                  if (paramg_1.g == paramg_2.g) {
                    return 0;
                  }
                }
                return 1;
              }
            }
            if (!bool3) {
              if (paramg_1.g == paramg_2.g)
              {
                if (!bool3) {
                  if (paramg_1.f > paramg_2.g) {
                    return -1;
                  }
                }
                return 1;
              }
            }
            if (!bool3) {
              if (paramg_1.f < paramg_2.f)
              {
                if (!bool3) {
                  if (paramg_1.g > paramg_2.g) {
                    return 2;
                  }
                }
                return 0;
              }
            }
            if (!bool3) {
              if (paramg_1.g < paramg_2.g) {
                return -2;
              }
            }
            return 0;
          case 1: 
            if (!bool3) {
              if (paramg_1.f == paramg_2.f)
              {
                if (!bool3) {
                  if (paramg_1.g > paramg_2.g) {
                    return -1;
                  }
                }
                if (!bool3) {
                  if (paramg_1.g < paramg_2.g) {
                    return 1;
                  }
                }
                return 0;
              }
            }
            if (!bool3) {
              if (paramg_1.g == paramg_2.g)
              {
                if (!bool3) {
                  if (paramg_1.f > paramg_2.f) {
                    return -1;
                  }
                }
                if (!bool3) {
                  if (paramg_1.f < paramg_2.f) {
                    return 1;
                  }
                }
                return 0;
              }
            }
            if (!bool3) {
              if (paramg_1.f < paramg_2.f)
              {
                if (bool3) {
                  break label674;
                }
                if (paramg_1.g > paramg_2.g)
                {
                  bool1 = a(paramg_1.f, paramg_1.l, paramg_2.f, paramg_2.l);
                  bool2 = a(paramg_1.g, paramg_1.l, paramg_2.g, paramg_2.l);
                  if (!bool3) {
                    if (bool1)
                    {
                      if (bool3) {
                        break label644;
                      }
                      if (!bool2) {
                        return 1;
                      }
                    }
                  }
                  label644:
                  if (!bool3) {
                    if (bool2)
                    {
                      if (bool3) {
                        break label664;
                      }
                      if (!bool1) {
                        return -1;
                      }
                    }
                  }
                  label664:
                  return 0;
                }
              }
            }
            label674:
            if (!bool3) {
              if (paramg_2.f < paramg_1.f)
              {
                if (bool3) {
                  break label795;
                }
                if (paramg_2.g > paramg_1.g)
                {
                  bool1 = a(paramg_1.f, paramg_1.l, paramg_2.f, paramg_2.l);
                  bool2 = a(paramg_1.g, paramg_1.l, paramg_2.g, paramg_2.l);
                  if (!bool3) {
                    if (bool1)
                    {
                      if (bool3) {
                        break label765;
                      }
                      if (!bool2) {
                        return -1;
                      }
                    }
                  }
                  label765:
                  if (!bool3) {
                    if (bool2)
                    {
                      if (bool3) {
                        break label785;
                      }
                      if (!bool1) {
                        return 1;
                      }
                    }
                  }
                  return 0;
                }
              }
            }
            label785:
            label795:
            if (!bool3) {
              if (paramg_1.f < paramg_2.f)
              {
                if (bool3) {
                  break label831;
                }
                if (paramg_1.g < paramg_2.g) {
                  return 2;
                }
              }
            }
            label831:
            if (bool3) {
              break label1597;
            }
            if (paramg_2.f >= paramg_1.f) {
              break;
            }
            if (bool3) {
              break label1597;
            }
            if (paramg_2.g >= paramg_1.g) {
              break;
            }
            return -2;
          }
        }
        if (!bool3) {
          if (paramg_1.f == paramg_2.f)
          {
            if (!bool3) {
              if (paramg_1.g > paramg_2.g) {
                return 1;
              }
            }
            if (!bool3) {
              if (paramg_1.g < paramg_2.g) {
                return -1;
              }
            }
            return 0;
          }
        }
        if (!bool3) {
          if (paramg_1.g == paramg_2.g)
          {
            if (!bool3) {
              if (paramg_1.f > paramg_2.f) {
                return 1;
              }
            }
            if (!bool3) {
              if (paramg_1.f < paramg_2.f) {
                return -1;
              }
            }
            return 0;
          }
        }
        if (!bool3) {
          if (paramg_1.f < paramg_2.f)
          {
            if (bool3) {
              break label1103;
            }
            if (paramg_1.g > paramg_2.g)
            {
              bool1 = a(paramg_1.f, paramg_1.l, paramg_2.f, paramg_2.l);
              bool2 = a(paramg_1.g, paramg_1.l, paramg_2.g, paramg_2.l);
              if (!bool3) {
                if (bool1)
                {
                  if (bool3) {
                    break label1073;
                  }
                  if (!bool2) {
                    return -1;
                  }
                }
              }
              label1073:
              if (!bool3) {
                if (bool2)
                {
                  if (bool3) {
                    break label1093;
                  }
                  if (!bool1) {
                    return 1;
                  }
                }
              }
              label1093:
              return 0;
            }
          }
        }
        label1103:
        if (!bool3) {
          if (paramg_2.f < paramg_1.f)
          {
            if (bool3) {
              break label1224;
            }
            if (paramg_2.g > paramg_1.g)
            {
              bool1 = a(paramg_1.f, paramg_1.l, paramg_2.f, paramg_2.l);
              bool2 = a(paramg_1.g, paramg_1.l, paramg_2.g, paramg_2.l);
              if (!bool3) {
                if (bool1)
                {
                  if (bool3) {
                    break label1194;
                  }
                  if (!bool2) {
                    return 1;
                  }
                }
              }
              if (!bool3) {
                if (bool2)
                {
                  if (bool3) {
                    break label1214;
                  }
                  if (!bool1) {
                    return -1;
                  }
                }
              }
              return 0;
            }
          }
        }
        label1194:
        label1214:
        label1224:
        if (!bool3) {
          if (paramg_1.f < paramg_2.f)
          {
            if (bool3) {
              break label1261;
            }
            if (paramg_1.g < paramg_2.g) {
              return -2;
            }
          }
        }
        label1261:
        if (bool3) {
          break label1597;
        }
        if (paramg_2.f >= paramg_1.f) {
          break label1596;
        }
        if (bool3) {
          break label1597;
        }
        if (paramg_2.g >= paramg_1.g) {
          break label1596;
        }
        return 2;
      }
    }
    if (!bool3) {
      if (paramg_2.a() == 0) {
        return -3;
      }
    }
    if (!bool3) {
      if (paramg_1.a() == 0) {
        return 3;
      }
    }
    if (!bool3)
    {
      if (paramg_2.a() == 3) {
        return 3;
      }
      if (bool3) {}
    }
    else if (paramg_1.a() == 3)
    {
      return -3;
    }
    boolean bool1 = a(paramg_1.f, paramg_1.l, paramg_2.f, paramg_2.l);
    boolean bool2 = a(paramg_1.g, paramg_1.l, paramg_2.g, paramg_2.l);
    double d1;
    double d2;
    if (!bool3) {
      if (paramg_1.a() == 2)
      {
        if (!bool3) {
          if (bool1)
          {
            if ((bool3) || (!bool2)) {
              return 2;
            }
            d1 = Math.abs(paramg_1.f - paramg_2.f);
            d2 = Math.abs(paramg_1.g - paramg_2.g);
            if (!bool3) {
              if (d1 == d2) {
                return 0;
              }
            }
            if (!bool3) {}
            return d1 > d2 ? -1 : 1;
          }
        }
        if (bool3) {
          break label1597;
        }
        if (!bool2) {
          break label1596;
        }
        return -2;
      }
    }
    if (!bool3) {
      if (bool1)
      {
        if ((bool3) || (!bool2)) {
          return -2;
        }
        d1 = Math.abs(paramg_1.f - paramg_2.f);
        d2 = Math.abs(paramg_1.g - paramg_2.g);
        if (!bool3) {
          if (d1 == d2) {
            return 0;
          }
        }
        if (!bool3) {}
        return d1 > d2 ? 1 : -1;
      }
    }
    if (!bool3) {
      if (bool2) {
        return 2;
      }
    }
    label1596:
    label1597:
    return 0;
  }
  
  private boolean a(double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4)
  {
    if (!d.R) {}
    return Math.abs(paramDouble1 - paramDouble3) < Math.min(paramDouble2, paramDouble4);
  }
  
  private void n()
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    this.H = new z();
    f.a_ locala_1;
    f.a_ locala_2;
    double d1;
    double d2;
    double d3;
    double d4;
    if (!bool2)
    {
      if (this.m != null)
      {
        locala_1 = this.m.e();
        if (!bool2) {
          if (this.m.b(locala_1) > this.J) {
            this.H.a(new e_(this.J, -this.f, 0.0D, this.t, false));
          }
        }
        locala_2 = this.m.e();
        do
        {
          if (locala_2 == null) {
            break;
          }
          d1 = this.m.b(locala_2);
          d2 = -this.m.c(locala_2);
          d3 = this.m.a(locala_2);
          if (bool1) {
            break label227;
          }
          d4 = d3 == 1.7976931348623157E+308D ? -this.f : -d3;
          this.H.b(new e_(d1, d4, d2, 0.0D, this.t, false));
          locala_2 = this.m.f(locala_2);
        } while (!bool1);
        locala_2 = this.m.f();
        if (bool2) {
          break label378;
        }
        if (this.m.b(locala_2) < this.K)
        {
          label227:
          this.H.b(new e_(this.K, -this.f, 0.0D, this.t, false));
          if (bool2) {
            break label341;
          }
          if (!bool1) {}
        }
      }
      else
      {
        this.H.a(new e_(this.J, -this.f, 0.0D, this.t, false));
      }
    }
    else {
      this.H.b(new e_(this.K, -this.f, 0.0D, this.t, false));
    }
    this.I = new z();
    label341:
    if (!bool2) {
      if (this.n != null)
      {
        locala_1 = this.n.e();
        if (!bool2) {
          label378:
          if (this.n.b(locala_1) > this.J) {
            this.I.a(new e_(this.J, this.e, 0.0D, this.t, true));
          }
        }
        locala_2 = this.n.e();
        if (locala_2 != null) {}
        do
        {
          d1 = this.n.b(locala_2);
          d2 = this.n.c(locala_2);
          d3 = this.n.a(locala_2);
          if (bool1) {
            break label543;
          }
          d4 = d3 == -1.797693134862316E+308D ? this.e : d3;
          this.I.b(new e_(d1, d4, d2, 0.0D, this.t, true));
          locala_2 = this.n.f(locala_2);
          if (!bool1) {
            break;
          }
          locala_2 = this.n.f();
        } while (bool2);
        if (this.n.b(locala_2) >= this.K) {
          return;
        }
        this.I.b(new e_(this.K, this.e, 0.0D, this.t, true));
        if (!bool2) {
          if (!bool1) {
            return;
          }
        }
      }
      else
      {
        this.I.a(new e_(this.J, this.e, 0.0D, this.t, true));
      }
    }
    label543:
    this.I.b(new e_(this.K, this.e, 0.0D, this.t, true));
  }
  
  private static z a(z paramz, boolean paramBoolean)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    if ((bool2) || ((paramz == null) || ((bool2) || (paramz.isEmpty())))) {
      return paramz;
    }
    ArrayList localArrayList = new ArrayList();
    Object localObject1 = null;
    Object localObject2 = paramz.f();
    if (localObject2 != null) {}
    label281:
    label293:
    while (bool2)
    {
      localObject3 = a((e_)((v)localObject2).c(), ((v)localObject2).a());
      if (bool1) {
        break label305;
      }
      if (!bool2) {
        if (localObject1 == null)
        {
          if (!bool2) {}
          double d1 = ((e_)localObject3).b == -1.797693134862316E+308D ? ((e_)localObject3).b : ((e_)localObject3).b - (((e_)localObject3).d + ((e_)localObject3).f);
          c_ localc_1 = new c_(d1, (byte)0, (e_)localObject3);
          localArrayList.add(localc_1);
          if (bool2) {
            break label293;
          }
          if (!bool1) {
            break label281;
          }
        }
      }
      if (!bool2) {}
      int i = ((e_)localObject3).c < ((e_)localObject1).c ? 1 : 0;
      d2 = ((e_)localObject3).b + (i != 0 ? ((e_)localObject1).d + ((e_)localObject1).f : 0.0D);
      localObject5 = new c_(d2, (byte)1, (e_)localObject1);
      localArrayList.add(localObject5);
      double d3 = ((e_)localObject3).b - (i != 0 ? 0.0D : ((e_)localObject3).d + ((e_)localObject3).f);
      c_ localc_3 = new c_(d3, (byte)0, (e_)localObject3);
      localArrayList.add(localc_3);
      localObject1 = localObject3;
      localObject2 = ((v)localObject2).a();
      if (!bool1) {
        break;
      }
    }
    Collections.sort(localArrayList);
    label305:
    localObject2 = new z();
    Object localObject3 = new f_();
    Object localObject4 = null;
    double d2 = ((c_)localArrayList.get(0)).c;
    Object localObject5 = localArrayList.iterator();
    if (((Iterator)localObject5).hasNext()) {}
    label551:
    while (bool2)
    {
      c_ localc_2 = (c_)((Iterator)localObject5).next();
      if (!bool2) {
        if (d2 != localc_2.c)
        {
          e_ locale_ = ((f_)localObject3).a(d2);
          if ((bool2) || (locale_ != null)) {
            if (!bool2)
            {
              if ((localObject4 == null) || ((bool2) || ((localObject4.c != locale_.c) || ((bool2) || ((localObject4.f != locale_.f) || ((bool2) || ((localObject4.d != locale_.d) || ((bool2) || (localObject4.a != locale_.a))))))))) {
                ((z)localObject2).add(locale_);
              }
            }
            else {
              localObject4 = locale_;
            }
          }
          d2 = localc_2.c;
        }
      }
      if (!bool2)
      {
        if (localc_2.a())
        {
          ((f_)localObject3).a(localc_2.g);
          if (bool2) {
            break label551;
          }
          if (!bool1) {
            break;
          }
        }
        ((f_)localObject3).c(localc_2.g);
      }
      if (!bool1) {
        break;
      }
    }
    localObject5 = ((f_)localObject3).a(d2);
    if (((bool2) || (localObject5 != null)) && (((!bool2) && (localObject4 == null)) || ((bool2) || ((localObject4.c != ((e_)localObject5).c) || ((bool2) || ((localObject4.f != ((e_)localObject5).f) || ((bool2) || ((localObject4.d != ((e_)localObject5).d) || ((bool2) || (localObject4.a != ((e_)localObject5).a)))))))))) {
      ((z)localObject2).add(localObject5);
    }
    return localObject2;
  }
  
  private static e_ a(e_ parame_, v paramv)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    if (!bool2) {
      if (parame_.g == 1.0D)
      {
        if ((bool2) || (paramv != null))
        {
          e_ locale_ = (e_)paramv.c();
          d1 = parame_.c + locale_.b - parame_.b;
          if (!bool2) {
            if (!bool1) {
              break label87;
            }
          }
        }
        else
        {
          if (bool2) {
            break label86;
          }
          d1 = 1.7976931348623157E+308D;
        }
        if (!bool1) {
          break label87;
        }
      }
    }
    label86:
    double d1 = parame_.c;
    label87:
    return new e_(parame_.b, d1, parame_.d, parame_.f, parame_.a);
  }
  
  private double d(double paramDouble)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    v localv1 = a(this.I, true).f();
    v localv2 = a(this.H, false).f();
    double d1 = -1.797693134862316E+308D;
    label283:
    label308:
    do
    {
      do
      {
        do
        {
          do
          {
            if ((localv1 == null) || ((!bool2) && (localv2 == null))) {
              break label453;
            }
            e_ locale_1 = (e_)localv1.c();
            e_ locale_2 = (e_)localv2.c();
            if (!bool2) {
              if (locale_1.b < locale_2.b)
              {
                d3 = locale_1.b + (locale_2.b - locale_1.b) * locale_1.g;
                locale_3 = (e_)localv2.b().c();
                d4 = Math.min(locale_2.c, locale_3.c + (locale_2.b - locale_3.b) * locale_3.g);
                d2 = -(d4 + locale_2.d) - (d3 + locale_1.d);
                if (bool2) {
                  break label308;
                }
                if (!bool1) {
                  break label283;
                }
              }
            }
            double d3 = locale_2.b + (locale_1.b - locale_2.b) * locale_2.g;
            e_ locale_3 = (e_)localv1.b().c();
            double d4 = Math.max(locale_1.c, locale_3.c + (locale_1.b - locale_3.b) * locale_3.g);
            double d2 = -(d3 + locale_2.d) - (d4 + locale_1.d);
            d1 = Math.max(d1, paramDouble * (Math.max(locale_1.f, locale_2.f) - d2));
            if (bool2) {
              break label406;
            }
            if (localv1.a() == null) {
              break label401;
            }
            if (bool2) {
              break label406;
            }
            if (localv2.a() == null) {
              break label401;
            }
            if (bool2) {
              break label398;
            }
            if (((e_)localv1.a().c()).b >= ((e_)localv2.a().c()).b) {
              break;
            }
            localv1 = localv1.a();
            if (bool2) {
              break label398;
            }
          } while (!bool1);
          if (bool2) {
            break label406;
          }
          localv2 = localv2.a();
        } while (!bool1);
        if (bool2) {
          break label435;
        }
        if (localv2.a() == null) {
          break;
        }
        if (bool2) {
          break label435;
        }
        localv2 = localv2.a();
      } while (!bool1);
      if ((!bool2) && (localv1.a() == null)) {
        break;
      }
      localv1 = localv1.a();
    } while (!bool1);
    label398:
    label401:
    label406:
    label435:
    label453:
    if (!bool2) {
      if (d1 == -1.797693134862316E+308D) {
        return 0.0D;
      }
    }
    return d1;
  }
  
  private double e(double paramDouble)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    v localv1 = a(this.I, true).f();
    v localv2 = a(this.H, false).f();
    double d1 = -1.797693134862316E+308D;
    label216:
    label219:
    label224:
    label253:
    do
    {
      do
      {
        do
        {
          do
          {
            if ((localv1 == null) || ((!bool2) && (localv2 == null))) {
              break label271;
            }
            e_ locale_1 = (e_)localv1.c();
            e_ locale_2 = (e_)localv2.c();
            double d2 = -(locale_2.c + locale_2.d) - (locale_1.c + locale_1.d);
            d1 = Math.max(d1, Math.max(paramDouble, Math.max(locale_1.f, locale_2.f)) - d2);
            if (bool2) {
              break label224;
            }
            if (localv1.a() == null) {
              break label219;
            }
            if (bool2) {
              break label224;
            }
            if (localv2.a() == null) {
              break label219;
            }
            if (bool2) {
              break label216;
            }
            if (((e_)localv1.a().c()).b >= ((e_)localv2.a().c()).b) {
              break;
            }
            localv1 = localv1.a();
            if (bool2) {
              break label216;
            }
          } while (!bool1);
          if (bool2) {
            break label224;
          }
          localv2 = localv2.a();
        } while (!bool1);
        if (bool2) {
          break label253;
        }
        if (localv2.a() == null) {
          break;
        }
        if (bool2) {
          break label253;
        }
        localv2 = localv2.a();
      } while (!bool1);
      if ((!bool2) && (localv1.a() == null)) {
        break;
      }
      localv1 = localv1.a();
    } while (!bool1);
    label271:
    return -d1;
  }
  
  double p()
  {
    return this.s;
  }
  
  public double f(double paramDouble)
  {
    double d1 = Math.max(this.s, -e(paramDouble));
    if (!d.R) {
      if (d1 == -1.797693134862316E+308D) {
        d1 = 0.0D;
      }
    }
    return d1;
  }
  
  public void q()
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    do
    {
      Iterator localIterator = this.G.iterator();
      g_[] arrayOfg_;
      int i;
      do
      {
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          arrayOfg_ = (g_[])localIterator.next();
          i = 0;
          do
          {
            if (i >= arrayOfg_.length) {
              break;
            }
          } while (bool2);
        } while (bool1);
      } while (arrayOfg_[i].r != 0);
      g_ localg_ = arrayOfg_[i];
      a(this.I, localg_);
      i++;
    } while (!bool1);
  }
  
  public void r()
  {
    boolean bool = d.Q;
    do
    {
      Iterator localIterator = this.G.iterator();
      g_[] arrayOfg_;
      int i;
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        arrayOfg_ = (g_[])localIterator.next();
        do
        {
          i = arrayOfg_.length - 1;
          if (i < 0) {
            break;
          }
        } while (bool);
      } while (arrayOfg_[i].r != 3);
      g_ localg_ = arrayOfg_[i];
      double d1 = localg_.p;
      double d2 = localg_.q;
      double d3 = localg_.j;
      double d4 = localg_.k;
      localg_.q = (-d1);
      localg_.p = (-d2);
      localg_.k = d3;
      localg_.j = d4;
      a(this.H, localg_);
      localg_.h = (-localg_.h);
      localg_.p = d1;
      localg_.q = d2;
      localg_.k = d4;
      localg_.j = d3;
      i--;
    } while (!bool);
  }
  
  public void s()
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    Iterator localIterator = this.G.iterator();
    label92:
    label93:
    do
    {
      if (localIterator.hasNext())
      {
        g_[] arrayOfg_ = (g_[])localIterator.next();
        int i = a(arrayOfg_);
        int i1 = 0;
        i1 = 0;
        do
        {
          if (i1 > i) {
            break;
          }
          if (bool2) {
            break label93;
          }
          if (bool1) {
            break label92;
          }
          if (arrayOfg_[i1].r != 0) {
            break;
          }
          i1++;
        } while (!bool1);
        g_ localg_;
        do
        {
          if (bool2) {
            break;
          }
          if (bool2) {
            break label138;
          }
          if (i1 > i) {
            break;
          }
          localg_ = arrayOfg_[i1];
          a(this.I, localg_);
          i1++;
          if (bool2) {
            break label148;
          }
          if (bool1) {
            break label146;
          }
        } while (!bool1);
        if (!bool2) {
          i1 = arrayOfg_.length - 1;
        }
        do
        {
          while (bool2) {
            if (i1 > i)
            {
              if (bool1) {
                break label184;
              }
              if (arrayOfg_[i1].r == 3)
              {
                i1--;
                if (!bool1) {
                  break;
                }
              }
            }
          }
          if (i1 <= i) {
            break;
          }
          localg_ = arrayOfg_[i1];
          double d1 = localg_.p;
          double d2 = localg_.q;
          localg_.q = (-d1);
          localg_.p = (-d2);
          a(this.H, localg_);
          localg_.h = (-localg_.h);
          localg_.p = d1;
          localg_.q = d2;
          i1--;
        } while ((!bool2) && ((!bool1) && (!bool1)));
      }
    } while (bool2);
    label138:
    label146:
    label148:
    label184:
    return;
  }
  
  private int a(g_[] paramArrayOfg_)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    int i = -1;
    int i1 = paramArrayOfg_.length;
    int i2 = 0;
    do
    {
      if (i2 >= paramArrayOfg_.length) {
        break;
      }
      g_ localg_ = paramArrayOfg_[i2];
      if (bool2) {
        break label106;
      }
      if (bool1) {
        break label104;
      }
      if (localg_.r == 0)
      {
        i = i2;
        if (bool2) {
          continue;
        }
        if (!bool1) {}
      }
      else
      {
        if (bool2) {
          continue;
        }
        if (localg_.r == 3)
        {
          if (bool2) {
            continue;
          }
          if (i1 == paramArrayOfg_.length) {
            i1 = i2;
          }
        }
      }
      i2++;
    } while (!bool1);
    if (!bool2) {
      label104:
      label106:
      if ((bool2) || (i1 == paramArrayOfg_.length)) {
        return i1 - 1;
      }
    }
    if (!bool2)
    {
      if (i < 0) {
        return i1 - 1;
      }
      i2 = Math.min(paramArrayOfg_.length - 1, i + (i1 - i) / 2);
    }
    return i2;
  }
  
  void t()
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    double d1 = this.s;
    double[][] arrayOfDouble = { { 3.0D, 10.0D, 15.0D }, { 3.0D, 2.0D, 5.0D }, { 2.0D, 1.0D, 3.0D }, { 0.0D, 1.0D, 1.0D }, { 0.0D, 0.0D, 0.0D } };
    double d2 = 1.0D;
    double d3 = 1.0D;
    double d4 = 1.0D;
    this.s = a(d2, d3, d4, 0.0D, 0.0D, 0.0D);
    int i = 0;
    label182:
    do
    {
      do
      {
        if (this.s <= 0.0D) {
          break;
        }
        break label182;
        if (i >= arrayOfDouble.length) {
          break;
        }
        double d5 = 1.7976931348623157E+308D;
        do
        {
          if (this.s <= 0.0D) {
            break label276;
          }
          if (bool1) {
            break;
          }
          if (d5 <= this.s + 0.001D) {
            break label276;
          }
          d4 /= 2.0D;
          d3 /= 2.0D;
          d2 /= 2.0D;
          d5 = this.s;
          this.s = d1;
          this.s = a(d2, d3, d4, arrayOfDouble[i][0], arrayOfDouble[i][1], arrayOfDouble[i][2]);
        } while (!bool1);
        i++;
      } while (bool2);
    } while (!bool1);
    label276:
  }
  
  private double a(double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, double paramDouble5, double paramDouble6)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    m();
    Iterator localIterator = this.G.iterator();
    label161:
    label222:
    label485:
    label487:
    do
    {
      if (!localIterator.hasNext()) {
        break;
      }
      g_[] arrayOfg_ = (g_[])localIterator.next();
      if (bool1) {
        break label673;
      }
      int i = a(arrayOfg_);
      int i1 = 0;
      g_ localg_;
      double d1;
      double d2;
      double d3;
      double d4;
      do
      {
        do
        {
          if (i1 > i) {
            break;
          }
          localg_ = arrayOfg_[i1];
          d1 = localg_.j;
          d2 = localg_.k;
          if (bool1) {
            break label322;
          }
          if (paramDouble1 != 1.0D)
          {
            if (!bool2)
            {
              if (d1 > paramDouble4) {
                localg_.j = Math.max(paramDouble4, d1 * paramDouble1);
              }
              if (bool2) {
                break label161;
              }
            }
            if (d2 > paramDouble4) {
              localg_.k = Math.max(paramDouble4, d2 * paramDouble1);
            }
          }
          d3 = localg_.q;
          d4 = localg_.p;
          if (!bool2) {
            if (paramDouble3 != 1.0D)
            {
              if (bool2) {
                break label222;
              }
              if (d3 < localg_.o) {
                localg_.q = Math.max(localg_.o + paramDouble6, d3 * paramDouble3);
              }
            }
          }
          if (!bool2)
          {
            if (paramDouble1 != 1.0D)
            {
              if (bool2) {
                continue;
              }
              if (d4 > localg_.n) {
                localg_.p = Math.max(localg_.n + paramDouble5, d4 * paramDouble2);
              }
            }
            a(this.I, localg_);
            localg_.j = d1;
            localg_.k = d2;
            localg_.q = d3;
            localg_.p = d4;
            i1++;
          }
        } while (!bool1);
      } while (bool2);
      i1 = arrayOfg_.length - 1;
      do
      {
        do
        {
          if (i1 <= i) {
            break label656;
          }
          localg_ = arrayOfg_[i1];
          d1 = localg_.p;
          d2 = localg_.q;
          if (bool1) {
            break;
          }
          if (paramDouble2 != 1.0D) {
            if (!bool2)
            {
              if (d1 > localg_.n) {
                localg_.q = (-Math.max(localg_.n + paramDouble5, d1 * paramDouble2));
              }
            }
            else
            {
              if (bool2) {
                break label421;
              }
              if (!bool1) {
                break label418;
              }
            }
          }
          localg_.q = (-d1);
          if ((bool2) || (paramDouble2 != 1.0D)) {
            if (!bool2)
            {
              if (d2 < localg_.o)
              {
                if (bool2) {
                  break label487;
                }
                localg_.p = (-Math.max(localg_.o + paramDouble6, d2 * paramDouble3));
              }
            }
            else {
              if (!bool1) {
                break label485;
              }
            }
          }
          localg_.p = (-d2);
          d3 = localg_.j;
          d4 = localg_.k;
          if ((bool2) || (paramDouble1 != 1.0D)) {
            if (!bool2)
            {
              if (d3 > paramDouble4) {
                localg_.j = (d4 * paramDouble1);
              }
            }
            else
            {
              if (bool2) {
                break label552;
              }
              if (!bool1) {
                break label549;
              }
            }
          }
          localg_.j = d4;
          if ((bool2) || (paramDouble1 != 1.0D)) {
            if (!bool2)
            {
              if (d4 > paramDouble4) {
                localg_.k = (d3 * paramDouble1);
              }
            }
            else
            {
              if (bool2) {
                continue;
              }
              if (!bool1) {
                break label599;
              }
            }
          }
          localg_.k = d3;
          a(this.H, localg_);
          localg_.h = (-localg_.h);
          localg_.j = d3;
          localg_.k = d4;
          localg_.p = d1;
          localg_.q = d2;
          i1--;
        } while (!bool1);
        b(arrayOfg_);
      } while (bool2);
    } while (!bool1);
    label322:
    label599:
    return Math.max(this.s, d(paramDouble1));
  }
  
  public void u()
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    m();
    Iterator localIterator = this.G.iterator();
    if (localIterator.hasNext()) {}
    label113:
    label115:
    while (bool2)
    {
      g_[] arrayOfg_ = (g_[])localIterator.next();
      int i = a(arrayOfg_);
      if ((!bool2) && (bool1)) {
        return;
      }
      int i1 = 0;
      g_ localg_;
      do
      {
        if (i1 > i) {
          break;
        }
        localg_ = arrayOfg_[i1];
        a(this.I, localg_);
        i1++;
        if (bool2) {
          break label115;
        }
        if (bool1) {
          break label113;
        }
      } while (!bool1);
      if (!bool2) {
        i1 = arrayOfg_.length - 1;
      }
      do
      {
        do
        {
          if (i1 <= i) {
            break label298;
          }
          localg_ = arrayOfg_[i1];
          double d1 = localg_.p;
          double d2 = localg_.q;
          double d3 = localg_.j;
          double d4 = localg_.k;
          localg_.j = d4;
          localg_.k = d3;
          localg_.q = (-d1);
          localg_.p = (-d2);
          byte b1 = localg_.r;
          if (bool1) {
            break;
          }
          if (b1 == 1)
          {
            localg_.r = 2;
            if (bool2) {
              continue;
            }
            if (!bool1) {}
          }
          else
          {
            if (bool2) {
              continue;
            }
            if (b1 == 2) {
              localg_.r = 1;
            }
          }
          a(this.H, localg_);
          localg_.h = (-localg_.h);
          localg_.j = d3;
          localg_.k = d4;
          localg_.p = d1;
          localg_.q = d2;
          localg_.r = b1;
          i1--;
        } while (!bool1);
        b(arrayOfg_);
      } while (bool2);
      if (!bool1) {
        break;
      }
    }
    label298:
    this.s = Math.max(this.s, f(0.0D));
  }
  
  private void b(g_[] paramArrayOfg_)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    Object localObject1 = null;
    Object localObject2 = null;
    int i = 0;
    int i1 = 0;
    g_ localg_;
    label130:
    label131:
    label184:
    label186:
    do
    {
      if (i1 >= paramArrayOfg_.length) {
        break;
      }
      localg_ = paramArrayOfg_[i1];
      double d1 = localg_.h;
      if (bool1) {
        break label201;
      }
      if (!Double.isNaN(d1))
      {
        if (!bool2) {
          if (d1 < 1.7976931348623157E+308D)
          {
            if (bool2) {
              break label184;
            }
            if (localg_.h > -1.797693134862316E+308D)
            {
              if (!bool2) {
                if (localObject1 == null)
                {
                  if (bool2) {
                    break label131;
                  }
                  localObject1 = localg_;
                  if (!bool1) {
                    break label130;
                  }
                }
              }
              if (!bool2) {
                if (((g_)localObject1).h > localg_.h) {
                  localObject1 = localg_;
                }
              }
              if (!bool2) {
                if (localObject2 == null)
                {
                  localObject2 = localg_;
                  if (bool2) {
                    continue;
                  }
                  if (!bool1) {
                    break label186;
                  }
                }
              }
              if (bool2) {
                continue;
              }
              if (((g_)localObject2).h >= localg_.h) {
                break label186;
              }
              localObject2 = localg_;
              if (bool2) {
                continue;
              }
              if (!bool1) {
                break label186;
              }
            }
          }
        }
        i = 1;
      }
      i1++;
    } while (!bool1);
    if ((!bool2) && (i != 0))
    {
      label201:
      if (!bool2)
      {
        if (localObject2 == null) {
          localObject2 = new g_(null, 0.0D, 0.0D, 0.0D, (byte)3, -1.797693134862316E+308D, 1.7976931348623157E+308D, 0.0D, 0.0D, false, 0.0D, 0.0D, 0.0D, null);
        }
      }
      else {
        ((g_)localObject2).h = this.n.d();
      }
      i1 = 0;
      if (i1 < paramArrayOfg_.length) {}
      while (bool2)
      {
        localg_ = paramArrayOfg_[i1];
        if (bool1) {
          break label390;
        }
        if (localg_.h == 1.7976931348623157E+308D)
        {
          localg_.h = Math.max(localg_.p, ((g_)localObject2).h + Math.max(((g_)localObject2).k, localg_.j) + ((g_)localObject2).i + localg_.i);
          localObject2 = localg_;
        }
        i1++;
        if (!bool1) {
          break;
        }
      }
      if (!bool2)
      {
        if (localObject1 == null) {
          localObject1 = new g_(null, 0.0D, 0.0D, 0.0D, (byte)3, -1.797693134862316E+308D, 1.7976931348623157E+308D, 0.0D, 0.0D, false, 0.0D, 0.0D, 0.0D, null);
        }
      }
      else {
        ((g_)localObject1).h = this.m.c();
      }
      label390:
      i1 = paramArrayOfg_.length - 1;
      do
      {
        if (i1 < 0) {
          break;
        }
        localg_ = paramArrayOfg_[i1];
        if (!bool2)
        {
          if (localg_.h == -1.797693134862316E+308D)
          {
            localg_.h = Math.min(localg_.q, ((g_)localObject1).h - Math.max(((g_)localObject1).j, localg_.k) - (((g_)localObject1).i + localg_.i));
            localObject1 = localg_;
          }
          i1--;
        }
      } while (!bool1);
    }
  }
  
  public double g(double paramDouble)
  {
    return a(paramDouble, 0.0D);
  }
  
  public double a(double paramDouble1, double paramDouble2)
  {
    e_ locale_ = a(this.I, paramDouble1);
    return locale_.c + Math.max(locale_.f, paramDouble2);
  }
  
  public double h(double paramDouble)
  {
    return c(paramDouble, 0.0D);
  }
  
  public double c(double paramDouble1, double paramDouble2)
  {
    e_ locale_ = a(this.H, paramDouble1);
    return -(locale_.c + Math.max(locale_.f, paramDouble2));
  }
  
  public double a(double paramDouble1, double paramDouble2, double paramDouble3)
  {
    return a(this.I, paramDouble1, paramDouble2, paramDouble3);
  }
  
  public double c(double paramDouble1, double paramDouble2, double paramDouble3)
  {
    return -a(this.H, paramDouble1, paramDouble2, paramDouble3);
  }
  
  private double a(z paramz, double paramDouble1, double paramDouble2, double paramDouble3)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    Object localObject = (e_)paramz.a();
    v localv = paramz.f().a();
    label157:
    do
    {
      if (localv == null) {
        break;
      }
      e_ locale_1 = (e_)localv.c();
      if (bool1) {
        break label177;
      }
      if (!bool2)
      {
        if (locale_1.b > paramDouble1)
        {
          double d1 = ((e_)localObject).c + Math.max(((e_)localObject).f, paramDouble3);
          do
          {
            if (localv == null) {
              break;
            }
            e_ locale_2 = (e_)localv.c();
            if (bool1) {
              break label157;
            }
            if (!bool2)
            {
              if (locale_2.b >= paramDouble2) {
                return d1;
              }
              d1 = Math.max(d1, locale_2.c + Math.max(locale_1.f, paramDouble3));
              localv = localv.a();
            }
          } while (!bool1);
          return d1;
        }
        localObject = locale_1;
        localv = localv.a();
      }
    } while (!bool1);
    label177:
    return (0.0D / 0.0D);
  }
  
  private e_ a(z paramz, double paramDouble)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    Object localObject = (e_)paramz.a();
    v localv = paramz.f().a();
    do
    {
      if (localv == null) {
        break;
      }
      e_ locale_ = (e_)localv.c();
      if (!bool2)
      {
        if (((e_)localObject).b <= paramDouble)
        {
          if (bool2) {
            continue;
          }
          if (locale_.b >= paramDouble) {
            return localObject;
          }
        }
        localObject = locale_;
        localv = localv.a();
      }
    } while (!bool1);
    return null;
  }
  
  public void i(double paramDouble)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    if (paramDouble == 0.0D) {
      return;
    }
    if (!bool2) {
      if (this.m != null) {
        this.m.a(paramDouble);
      }
    }
    Object localObject1 = this.G.iterator();
    break label81;
    label53:
    if (((Iterator)localObject1).hasNext()) {}
    Object localObject2;
    label81:
    while (bool2)
    {
      localObject2 = (g_[])((Iterator)localObject1).next();
      int i = a((g_[])localObject2);
      int i1;
      Object localObject3;
      do
      {
        i1 = i + 1;
        if (i1 >= localObject2.length) {
          break;
        }
        localObject3 = localObject2[i1];
      } while (bool2);
      if (bool1) {
        break label53;
      }
      if (!Double.isNaN(localObject3.h)) {
        localObject3.h += paramDouble;
      }
      i1++;
      if (!bool1) {
        break;
      }
    }
    localObject1 = this.H.f();
    do
    {
      if (localObject1 == null) {
        break;
      }
      localObject2 = (e_)((v)localObject1).c();
      localObject2.c -= paramDouble;
      localObject1 = ((v)localObject1).a();
    } while (!bool1);
  }
  
  private void v()
  {
    boolean bool4 = d.R;
    boolean bool3 = d.Q;
    int i = this.j.size() - 1;
    label292:
    label335:
    do
    {
      do
      {
        if (i < 0) {
          break;
        }
        double d1 = 1.7976931348623157E+308D;
        double d2 = -1.797693134862316E+308D;
        double d3 = -1.797693134862316E+308D;
        double d4 = 1.7976931348623157E+308D;
        boolean bool1 = true;
        boolean bool2 = true;
        z localz = (z)this.j.get(i);
        double d5 = 0.0D;
        double d6 = 0.0D;
        double d7 = 0.0D;
        Object localObject = localz.f();
        do
        {
          if (localObject == null) {
            break label426;
          }
          g_ localg_ = (g_)((v)localObject).c();
          d7 = Math.max(d7, localg_.i);
          if (bool3) {
            break;
          }
          if (localg_.s)
          {
            double d8 = localg_.t / a;
            if (!bool4) {
              if (localg_.p > -1.797693134862316E+308D) {
                d3 = Math.max(d3, localg_.p + d8);
              }
            }
            if (!bool4)
            {
              if (localg_.q < 1.7976931348623157E+308D) {
                d4 = Math.min(d4, localg_.q - d8);
              }
              d6 = Math.max(d6, localg_.k + d8);
              d5 = Math.max(d5, localg_.j + d8);
            }
            if (bool4) {
              break label292;
            }
            if (!bool3) {}
          }
          else
          {
            d3 = Math.max(d3, localg_.p);
            d4 = Math.min(d4, localg_.q);
            d6 = Math.max(d6, localg_.k);
            d5 = Math.max(d5, localg_.j);
          }
          int i1;
          if (!bool4) {
            if (localg_.f < d1)
            {
              d1 = localg_.f;
              i1 = localg_.a();
              if (!bool4) {
                if (i1 != 2) {
                  if (bool4) {
                    break label335;
                  }
                }
              }
              bool1 = i1 == 0;
            }
          }
          if (!bool4)
          {
            if (localg_.g > d2)
            {
              d2 = localg_.g;
              i1 = localg_.a();
              if (!bool4) {
                if (i1 != 1) {
                  if (bool4) {
                    break label393;
                  }
                }
              }
              bool2 = i1 == 0;
            }
            this.l.add(localg_.e);
            localObject = ((v)localObject).a();
          }
        } while (!bool3);
        localObject = g_.a(localz, d7 * 2.0D, d1, bool1, d2, bool2, d5, d6);
        ((g_)localObject).p = d3;
        ((g_)localObject).q = d4;
        this.b.put(localz, localObject);
        this.c.add(localObject);
        i--;
      } while (bool4);
    } while (!bool3);
    label393:
    label426:
    return;
  }
  
  public boolean w()
  {
    if (!d.R) {}
    return this.d > 0.0D;
  }
  
  public double d(Object paramObject)
  {
    double d1 = h(paramObject).h;
    if (!d.R) {
      if (Double.isNaN(d1)) {
        return this.o;
      }
    }
    return d1;
  }
  
  public double e(Object paramObject)
  {
    return h(paramObject).f;
  }
  
  public double f(Object paramObject)
  {
    return h(paramObject).g;
  }
  
  public double g(Object paramObject)
  {
    return d(this.h.get(paramObject));
  }
  
  private void a(z paramz, g_ paramg_)
  {
    boolean bool = d.R;
    if (!bool) {
      if (this.p)
      {
        double d1 = (bool) || ((paramg_.r == 3) || ((bool) || (paramg_.r == 0))) ? paramg_.i * 2.0D : 0.0D;
        if (bool) {
          break label94;
        }
        if (Math.abs(paramg_.g - paramg_.f) + d1 < this.r)
        {
          paramg_.h = (0.0D / 0.0D);
          return;
        }
      }
    }
    label94:
    if (!bool)
    {
      if (paramg_.s)
      {
        if (bool) {
          break label122;
        }
        c(paramz, paramg_);
      }
    }
    else if (!d.Q) {
      return;
    }
    label122:
    b(paramz, paramg_);
  }
  
  private void b(z paramz, g_ paramg_)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    int i = paramg_.a();
    e_ locale_1 = new e_(paramg_.f, 0.0D, paramg_.i, paramg_.k, (i == 0) || (i == 2));
    e_ locale_2 = new e_(paramg_.g, 0.0D, paramg_.i, paramg_.k, (i == 1) || (i == 0));
    v localv = paramz.f();
    e_ locale_3 = (e_)localv.c();
    e_ locale_4 = locale_3;
    double d1 = Math.max(paramg_.j, locale_3.f);
    double d2 = locale_3.c + locale_3.d + d1;
    d2 = Math.max(d2, paramg_.p - paramg_.i);
    if (paramg_.f - paramg_.i - d1 > locale_3.b + locale_3.d)
    {
      locale_4 = locale_3;
      localv = localv.a();
      if (bool2) {}
    }
    else
    {
      while (bool2)
      {
        locale_3 = (e_)localv.c();
        d1 = Math.max(paramg_.j, locale_3.f);
        if (bool1) {
          break label436;
        }
        if (!bool1) {
          break;
        }
      }
      if (localv != null)
      {
        if (bool2) {
          break label434;
        }
        if (bool1) {
          break label431;
        }
        if ((bool2) || (paramg_.f > locale_3.b)) {
          if (!bool2) {
            if (locale_1.a != locale_3.a) {
              if ((bool2) || (localv.b() != null))
              {
                localObject = (e_)localv.b().c();
                d2 = Math.max(d2, ((e_)localObject).c + ((e_)localObject).d + Math.max(paramg_.j, ((e_)localObject).f));
              }
            }
          }
        }
      }
      while (bool2)
      {
        d2 = Math.max(d2, locale_3.c + locale_3.d + Math.max(locale_3.f, paramg_.j));
        locale_4 = locale_3;
        localv = localv.a();
        locale_3 = (e_)localv.c();
        if (!bool1) {
          break;
        }
      }
      label431:
      label434:
      d2 = Math.max(d2, locale_4.c + locale_4.d + Math.max(locale_4.f, paramg_.j));
    }
    label436:
    Object localObject = paramz.a(locale_1, localv);
    double d3 = d2;
    do
    {
      do
      {
        if (paramg_.g < locale_3.b) {
          break;
        }
        locale_4 = locale_3;
        d3 = locale_3.c;
        d2 = Math.max(d3 + locale_3.d + Math.max(locale_3.f, paramg_.j), d2);
        paramz.h(localv);
        localv = localv.a();
        if (bool1) {
          break label565;
        }
        if (localv == null) {
          break;
        }
        locale_3 = (e_)localv.c();
      } while (!bool1);
    } while (bool2);
    d1 = Math.max(paramg_.j, locale_3.f);
    label565:
    do
    {
      if (localv == null) {
        break;
      }
      if (bool2) {
        break label928;
      }
      if (bool1) {
        break label927;
      }
      if (!bool2)
      {
        if (paramg_.g + paramg_.i + d1 <= locale_3.b - locale_3.d) {
          break;
        }
        if (bool2) {}
      }
      else
      {
        if (locale_2.a == locale_3.a) {
          break label649;
        }
      }
      d2 = Math.max(locale_3.c + locale_3.d + d1, d2);
      localv = localv.a();
      if ((!bool2) && (localv == null)) {
        break;
      }
      locale_3 = (e_)localv.c();
      d1 = Math.max(paramg_.j, locale_3.f);
    } while (!bool1);
    label649:
    if (!bool2)
    {
      e_ locale_5;
      if (!bool2) {
        if (((v)localObject).b() != null)
        {
          if (bool2) {
            break label833;
          }
          locale_5 = (e_)((v)localObject).b().c();
          if ((locale_5.b + this.q > paramg_.f) && (locale_5.a != locale_1.a))
          {
            if (bool2) {
              break label833;
            }
            if (((v)localObject).b().b() != null)
            {
              locale_5 = (e_)((v)localObject).b().b().c();
              d2 = Math.max(d2, locale_5.c + locale_5.d + Math.max(locale_5.f, paramg_.j));
            }
          }
        }
      }
      label833:
      if ((bool2) || (((v)localObject).a() != null))
      {
        locale_5 = (e_)((v)localObject).a().c();
        if (bool2) {
          break label924;
        }
        if ((locale_5.b - this.q < paramg_.g) && (locale_5.a != locale_2.a)) {
          d2 = Math.max(d2, locale_5.c + locale_5.d + Math.max(locale_5.f, paramg_.j));
        }
      }
      label924:
      label927:
      label928:
      d2 += paramg_.i;
    }
    ((v)localObject).a(new e_(paramg_.f, d2, paramg_.i, paramg_.k, (paramg_.r == 2) || (paramg_.r == 0)));
    paramz.b(new e_(paramg_.g, locale_4.c, locale_4.d, locale_4.f, (paramg_.r == 0) || (paramg_.r == 1)), (v)localObject);
    paramg_.h = d2;
    this.s = Math.max(this.s, d2 - paramg_.q);
    this.d = Math.max(this.d, d2);
  }
  
  private void c(z paramz, g_ paramg_)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    int i = paramg_.a();
    double d1;
    if (!bool2) {
      if (i == 1)
      {
        d1 = f(paramz, paramg_);
        if (bool2) {
          return;
        }
        if (!bool1) {
          break label74;
        }
      }
    }
    if (i == 2)
    {
      d1 = h(paramz, paramg_);
      if (bool2) {
        return;
      }
      if (!bool1) {}
    }
    else
    {
      d1 = d(paramz, paramg_);
    }
    label74:
    this.s = Math.max(this.s, d1 - paramg_.q);
    this.d = Math.max(this.d, this.d);
  }
  
  private static double a(e_ parame_, double paramDouble, g_ paramg_)
  {
    return Math.max(paramg_.p, parame_.c + parame_.d + Math.max(parame_.f, paramg_.j) + paramg_.i + (paramDouble - parame_.b) * parame_.g);
  }
  
  private static double a(e_ parame_, g_ paramg_)
  {
    return Math.max(paramg_.p, parame_.c + parame_.d + Math.max(parame_.f, paramg_.j) + paramg_.i);
  }
  
  private double d(z paramz, g_ paramg_)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    v localv = paramz.f();
    e_ locale_1 = (e_)localv.c();
    e_ locale_2 = locale_1;
    do
    {
      do
      {
        do
        {
          if (paramg_.f - paramg_.i - Math.max(paramg_.j, locale_1.f) <= locale_1.b + locale_1.d) {
            break;
          }
          locale_2 = locale_1;
          localv = localv.a();
        } while (localv == null);
        locale_1 = (e_)localv.c();
      } while (bool2);
    } while (!bool1);
    double d1 = paramg_.p;
    do
    {
      do
      {
        do
        {
          if (localv == null) {
            break;
          }
          if (bool2) {
            break label208;
          }
          if (paramg_.f <= locale_1.b) {
            break;
          }
          if (!bool2) {
            if (!locale_1.a)
            {
              if (locale_2 != null) {
                d1 = Math.max(d1, a(locale_2, paramg_));
              }
              d1 = Math.max(d1, a(locale_1, paramg_));
            }
          }
          locale_2 = locale_1;
          localv = localv.a();
        } while (localv == null);
      } while (bool2);
      locale_1 = (e_)localv.c();
    } while (!bool1);
    label208:
    double d2 = paramg_.t / a;
    double d3 = paramg_.g - paramg_.f;
    if (!bool2) {
      if (d3 <= d2 * 3.0D) {
        d2 = d3 * 0.35D;
      }
    }
    double d4 = paramg_.f;
    double d5 = paramg_.g;
    double d6 = d4 + d2;
    double d7 = d5 - d2;
    double d8 = (d6 - d4) * 1.0D;
    double d9 = Math.max(d1, a(locale_2, d4, paramg_));
    double d14;
    do
    {
      do
      {
        if (localv == null) {
          break;
        }
        if (bool2) {
          break label437;
        }
        if (locale_1.b >= d6) {
          break;
        }
        d10 = locale_1.b;
        d11 = a(locale_2, d10, paramg_);
        d12 = a(locale_1, paramg_);
        d13 = Math.max(d11, d12);
        d14 = d9 + (locale_1.b - d4) * 1.0D;
        if (!bool2)
        {
          if (d13 > d14) {
            d9 = d13 - (d10 - d4) * 1.0D;
          }
          locale_2 = locale_1;
          localv = localv.a();
        }
      } while (localv == null);
      locale_1 = (e_)localv.c();
      if ((bool2) || (bool2)) {
        break label460;
      }
      if (bool1) {
        break label450;
      }
    } while (!bool1);
    label437:
    double d10 = d9 + d8;
    double d11 = a(locale_2, d6, paramg_);
    label450:
    if (!bool2) {
      if (d11 > d10) {
        label460:
        d9 = d11 - d8;
      }
    }
    d10 = d9 + d8;
    do
    {
      do
      {
        if (localv == null) {
          break;
        }
        if (bool2) {
          break label605;
        }
        if (locale_1.b >= d7) {
          break;
        }
        d11 = locale_1.b;
        d12 = a(locale_2, d11, paramg_);
        d13 = a(locale_1, paramg_);
        d14 = Math.max(d12, d13);
        if (!bool2)
        {
          if (d14 > d10)
          {
            d10 = d14;
            d9 = d10 - d8;
          }
          locale_2 = locale_1;
          localv = localv.a();
        }
      } while (localv == null);
      locale_1 = (e_)localv.c();
      if ((bool2) || (bool2)) {
        break label617;
      }
      if (bool1) {
        break label607;
      }
    } while (!bool1);
    label605:
    d11 = a(locale_2, d7, paramg_);
    label607:
    if (!bool2) {
      if (d11 > d10)
      {
        label617:
        d10 = d11;
        d9 = d10 - d8;
      }
    }
    d11 = d10;
    do
    {
      do
      {
        if (localv == null) {
          break;
        }
        if (bool2) {
          break label794;
        }
        if (locale_1.b >= d5) {
          break;
        }
        d12 = locale_1.b;
        d13 = a(locale_2, d12, paramg_);
        d14 = a(locale_1, paramg_);
        double d15 = Math.max(d13, d14);
        double d16 = d11 + (d12 - d7) * -1.0D;
        if (!bool2)
        {
          if (d15 > d16)
          {
            d11 = d15 - (d12 - d7) * -1.0D;
            d10 = d11;
            d9 = d10 - d8;
          }
          locale_2 = locale_1;
          localv = localv.a();
        }
      } while (localv == null);
      locale_1 = (e_)localv.c();
      if ((bool2) || (bool2)) {
        break label817;
      }
      if (bool1) {
        break label807;
      }
    } while (!bool1);
    label794:
    double d12 = d11 + (d5 - d7) * -1.0D;
    double d13 = a(locale_2, d5, paramg_);
    label807:
    if (!bool2)
    {
      if (d13 > d12)
      {
        label817:
        d11 = d13 - (d5 - d7) * -1.0D;
        d10 = d11;
      }
    }
    else {
      d9 = d10 - d8;
    }
    do
    {
      do
      {
        do
        {
          if (localv == null) {
            break;
          }
          if (!bool2)
          {
            if (paramg_.g + paramg_.i + Math.max(paramg_.j, locale_1.f) <= locale_1.b - locale_1.d) {
              break;
            }
            d12 = locale_1.b;
            if (bool2) {}
          }
          else if (!locale_1.a)
          {
            d13 = a(locale_1, paramg_);
            d14 = d11 + (d12 - d7) * -1.0D;
            if (bool2) {
              continue;
            }
            if (d13 > d14)
            {
              d11 = d13 - (d12 - d7) * -1.0D;
              d10 = d11;
              d9 = d10 - d8;
            }
          }
          locale_2 = locale_1;
          localv = localv.a();
        } while (localv == null);
      } while (bool2);
      locale_1 = (e_)localv.c();
    } while (!bool1);
    z localz = new z();
    localz.add(new e_(d4, d9, 1.0D, paramg_.i, paramg_.k, true));
    localz.add(new e_(d6, d10, 0.0D, paramg_.i, paramg_.k, true));
    localz.add(new e_(d7, d11, -1.0D, paramg_.i, paramg_.k, true));
    localz.add(new e_(d5, -1.797693134862316E+308D, 0.0D, 0.0D, 0.0D, true));
    a(paramz, localz);
    a(paramz);
    paramg_.u = d6;
    paramg_.v = d7;
    paramg_.h = d10;
    return d10 + paramg_.i;
  }
  
  private double f(z paramz, g_ paramg_)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    v localv = paramz.f();
    e_ locale_1 = (e_)localv.c();
    e_ locale_2 = locale_1;
    do
    {
      do
      {
        do
        {
          if (paramg_.f - paramg_.i - Math.max(paramg_.j, locale_1.f) <= locale_1.b + locale_1.d) {
            break;
          }
          locale_2 = locale_1;
          localv = localv.a();
        } while (localv == null);
        locale_1 = (e_)localv.c();
      } while (bool2);
    } while (!bool1);
    double d1 = paramg_.p;
    do
    {
      do
      {
        do
        {
          if (localv == null) {
            break;
          }
          if (bool2) {
            break label223;
          }
          if (paramg_.f <= locale_1.b) {
            break;
          }
          if (!bool2) {
            if (locale_1.a)
            {
              if (((bool2) || (locale_2.a)) && (locale_2 != locale_1)) {
                d1 = Math.max(d1, a(locale_2, paramg_));
              }
              d1 = Math.max(d1, a(locale_1, paramg_));
            }
          }
          locale_2 = locale_1;
          localv = localv.a();
        } while (localv == null);
      } while (bool2);
      locale_1 = (e_)localv.c();
    } while (!bool1);
    label223:
    double d2 = paramg_.t / a;
    double d3 = paramg_.f;
    double d4 = Math.max(d1, a(locale_2, d3, paramg_));
    double d5 = d3 + d2;
    int i = 0;
    double d6 = d3;
    double d7 = d4;
    double d8 = paramg_.p;
    double d12;
    label385:
    label444:
    do
    {
      do
      {
        if (localv == null) {
          break;
        }
        if (bool2) {
          break label496;
        }
        if (paramg_.g < locale_1.b) {
          break;
        }
        d9 = locale_1.b;
        d10 = a(locale_2, d9, paramg_);
        d11 = a(locale_1, paramg_);
        d12 = Math.max(d10, d11);
        if (!bool2)
        {
          if (i == 0) {
            if (bool2) {
              break label385;
            }
          }
        }
        else if (locale_1.b >= d5)
        {
          d13 = a(locale_2, d5, paramg_);
          d4 = Math.max(d4, d13 + d2);
          i = 1;
        }
        d13 = d7 - (d9 - d6);
        if (!bool2)
        {
          if (d12 > d13)
          {
            if (!bool2)
            {
              d7 = d12 + (d9 - d6);
              if (i == 0)
              {
                d4 = d7;
                if (bool2) {
                  continue;
                }
                if (!bool1) {
                  break label444;
                }
              }
            }
            d8 = Math.max(d8, d12);
          }
          locale_2 = locale_1;
          localv = localv.a();
        }
      } while (localv == null);
      if (bool2) {
        break label499;
      }
      locale_1 = (e_)localv.c();
      if (bool2) {
        break label545;
      }
      if (bool1) {
        break label498;
      }
    } while (!bool1);
    label496:
    double d9 = a(locale_2, paramg_.g, paramg_);
    label498:
    label499:
    do
    {
      do
      {
        if (localv == null) {
          break;
        }
        if (bool2) {
          break label740;
        }
        if (paramg_.g + paramg_.i + Math.max(paramg_.j, locale_1.f) <= locale_1.b - locale_1.d + 0.001D) {
          break;
        }
        d10 = locale_1.b;
        if (!bool2)
        {
          if (i == 0)
          {
            if (bool2) {
              break label613;
            }
            if (d10 >= d5)
            {
              d11 = a(locale_2, d5, paramg_);
              d4 = Math.max(d4, d11 + d2);
              i = 1;
            }
          }
          if (bool2) {
            break label692;
          }
        }
        if (!locale_1.a)
        {
          d11 = a(locale_1, paramg_);
          d12 = d7 - (d10 - d6);
          if (bool2) {
            continue;
          }
          if (d11 > d12)
          {
            if (!bool2)
            {
              d7 = d11 + (d10 - d6);
              if (i == 0)
              {
                d4 = d7;
                if (bool2) {
                  continue;
                }
                if (!bool1) {
                  break label690;
                }
              }
            }
            d8 = Math.max(d8, d11);
          }
        }
        locale_2 = locale_1;
        localv = localv.a();
      } while (localv == null);
      locale_1 = (e_)localv.c();
      if ((bool2) || ((!bool2) && (bool1))) {
        break label743;
      }
    } while (!bool1);
    label545:
    label613:
    double d10 = paramg_.g - paramg_.f;
    label690:
    label692:
    label740:
    label743:
    double d11 = Math.max(d7 - d10, d9);
    z localz = new z();
    if (!bool2) {}
    int i1 = d10 <= d2 * 3.0D ? 1 : 0;
    if (!bool2) {
      if (i1 != 0)
      {
        localz.add(new e_(paramg_.f, d11 + d10, -1.0D, paramg_.i, paramg_.k, false));
        paramg_.h = (d11 + d10 * 0.5D);
        paramg_.u = (paramg_.f + d10 * 0.5D);
        paramg_.v = paramg_.u;
        if (bool2) {
          break label1206;
        }
        if (!bool1) {
          break label1183;
        }
      }
    }
    if (i == 0)
    {
      d13 = a(locale_2, d5, paramg_);
      d8 = Math.max(d11 + d2, d13);
    }
    d7 = Math.max(d11 + d2, d8);
    d6 = paramg_.g - (d7 - d11);
    double d13 = d7;
    double d15 = d4 - d13;
    if (!bool2) {
      if (d15 >= d2)
      {
        d14 = d3 + d15;
        if (bool2) {
          break label992;
        }
        if (!bool1) {
          break label984;
        }
      }
    }
    double d14 = d3 + d2;
    d4 = d13 + d2;
    label984:
    label992:
    if (!bool2)
    {
      if (d6 - d14 < d2)
      {
        localz.add(new e_(paramg_.f, d11 + d10, -1.0D, paramg_.i, paramg_.k, false));
        paramg_.h = (d11 + d10 * 0.5D);
        paramg_.u = (paramg_.f + d10 * 0.5D);
        paramg_.v = paramg_.u;
        if (bool2) {
          break label1206;
        }
        if (!bool1) {}
      }
      else
      {
        localz.add(new e_(d3, d4, -1.0D, paramg_.i, paramg_.k, false));
        localz.add(new e_(d14, d13, 0.0D, paramg_.i, paramg_.k, true));
      }
    }
    else
    {
      localz.add(new e_(d6, d7, -1.0D, paramg_.i, paramg_.k, true));
      paramg_.h = d13;
      paramg_.u = d14;
      paramg_.v = d6;
    }
    label1183:
    label1206:
    localz.add(new e_(paramg_.g, -1.797693134862316E+308D, 0.0D, 0.0D, 0.0D, true));
    a(paramz, localz);
    a(paramz);
    return paramg_.h + paramg_.u - paramg_.f + paramg_.i;
  }
  
  private double h(z paramz, g_ paramg_)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    v localv = paramz.g();
    e_ locale_1 = (e_)localv.c();
    e_ locale_2 = locale_1;
    do
    {
      do
      {
        do
        {
          if (paramg_.g + paramg_.i + Math.max(paramg_.j, locale_1.f) >= locale_1.b + locale_1.d) {
            break;
          }
          locale_2 = locale_1;
          localv = localv.b();
        } while (localv == null);
        locale_1 = (e_)localv.c();
      } while (bool2);
    } while (!bool1);
    double d1 = paramg_.p;
    do
    {
      do
      {
        do
        {
          if (localv == null) {
            break;
          }
          if (bool2) {
            break label223;
          }
          if (paramg_.g >= locale_1.b) {
            break;
          }
          if (!bool2) {
            if (locale_1.a)
            {
              if (((bool2) || (locale_2.a)) && (locale_2 != locale_1)) {
                d1 = Math.max(d1, a(locale_2, paramg_));
              }
              d1 = Math.max(d1, a(locale_1, paramg_));
            }
          }
          locale_2 = locale_1;
          localv = localv.b();
        } while (localv == null);
      } while (bool2);
      locale_1 = (e_)localv.c();
    } while (!bool1);
    label223:
    double d2 = paramg_.t / a;
    double d3 = paramg_.g;
    double d4 = Math.max(d1, a(locale_1, d3, paramg_));
    double d5 = d3 - d2;
    int i = 0;
    double d6 = paramg_.f;
    double d7 = d3;
    double d8 = d4;
    double d9 = paramg_.p;
    double d13;
    label399:
    label401:
    label452:
    do
    {
      do
      {
        if (localv == null) {
          break;
        }
        if (bool2) {
          break label502;
        }
        if (paramg_.f > locale_2.b) {
          break;
        }
        d10 = locale_2.b;
        d11 = a(locale_2, paramg_);
        d12 = a(locale_1, d10, paramg_);
        d13 = Math.max(d11, d12);
        d14 = d8 - (d7 - d10);
        if (!bool2) {
          if (d13 > d14)
          {
            if (!bool2)
            {
              d8 = d13 + (d7 - d10);
              if (i == 0)
              {
                d4 = d8;
                if (bool2) {
                  break label401;
                }
                if (!bool1) {
                  break label399;
                }
              }
            }
            d9 = Math.max(d9, d13);
          }
        }
        if (!bool2)
        {
          if (i == 0) {
            if (bool2) {
              break label452;
            }
          }
        }
        else if (locale_1.b < d5)
        {
          d15 = a(locale_1, d5, paramg_);
          d4 = Math.max(d4, d15 + d2);
          i = 1;
        }
        locale_2 = locale_1;
        localv = localv.b();
      } while (localv == null);
      if (bool2) {
        break label505;
      }
      locale_1 = (e_)localv.c();
      if (bool2) {
        break label551;
      }
      if (bool1) {
        break label504;
      }
    } while (!bool1);
    label502:
    double d10 = a(locale_2, paramg_.f, paramg_);
    label504:
    label505:
    do
    {
      do
      {
        if (localv == null) {
          break;
        }
        if (bool2) {
          break label749;
        }
        if (paramg_.g - paramg_.i - Math.max(paramg_.j, locale_1.f) >= locale_2.b + locale_2.d - 0.001D) {
          break;
        }
        d11 = locale_2.b;
        if (!bool2) {
          if (!locale_1.a)
          {
            d12 = a(locale_2, paramg_);
            d13 = d8 - (d7 - d11);
            if (bool2) {
              break label650;
            }
            if (d12 > d13)
            {
              if (!bool2)
              {
                d8 = d12 + (d7 - d11);
                if (i == 0)
                {
                  d4 = d8;
                  if (bool2) {
                    break label650;
                  }
                  if (!bool1) {
                    break label648;
                  }
                }
              }
              d9 = Math.max(d9, d12);
            }
          }
        }
        if (!bool2)
        {
          if (i == 0) {
            if (bool2) {
              break label701;
            }
          }
        }
        else if (locale_1.b < d5)
        {
          d12 = a(locale_1, d5, paramg_);
          d4 = Math.max(d4, d12 + d2);
          i = 1;
        }
        locale_2 = locale_1;
        localv = localv.b();
      } while (localv == null);
      locale_1 = (e_)localv.c();
      if ((bool2) || ((!bool2) && (bool1))) {
        break label752;
      }
    } while (!bool1);
    label551:
    label701:
    label749:
    double d11 = paramg_.g - paramg_.f;
    label648:
    label650:
    label752:
    double d12 = Math.max(d8 - d11, d10);
    z localz = new z();
    if (!bool2) {}
    int i1 = d11 <= d2 * 3.0D ? 1 : 0;
    if (!bool2) {
      if (i1 != 0)
      {
        localz.add(new e_(d6, d12, 1.0D, paramg_.i, paramg_.k, true));
        paramg_.h = (d12 + d11 * 0.5D);
        paramg_.u = (d6 + d11 * 0.5D);
        paramg_.v = paramg_.u;
        if (bool2) {
          break label1191;
        }
        if (!bool1) {
          break label1168;
        }
      }
    }
    if (i == 0)
    {
      d14 = a(locale_2, d5, paramg_);
      d9 = Math.max(d4 + d2, d14);
    }
    double d14 = Math.max(d12 + d2, d9);
    double d15 = d6 + (d14 - d12);
    double d16 = d14;
    double d18 = d4 - d16;
    if (!bool2) {
      if (d18 >= d2)
      {
        d17 = d3 - d18;
        if (bool2) {
          break label990;
        }
        if (!bool1) {
          break label982;
        }
      }
    }
    double d17 = d3 - d2;
    d4 = d16 + d2;
    label982:
    label990:
    if (!bool2)
    {
      if (d17 - d15 < d2)
      {
        localz.add(new e_(d6, d12, 1.0D, paramg_.i, paramg_.k, true));
        paramg_.h = (d12 + d11 * 0.5D);
        paramg_.u = (d6 + d11 * 0.5D);
        paramg_.v = paramg_.u;
        if (bool2) {
          break label1191;
        }
        if (!bool1) {}
      }
      else
      {
        localz.add(new e_(d6, d12, 1.0D, paramg_.i, paramg_.k, true));
        localz.add(new e_(d15, d14, 0.0D, paramg_.i, paramg_.k, true));
      }
    }
    else
    {
      localz.add(new e_(d17, d16, 1.0D, paramg_.i, paramg_.k, true));
      paramg_.h = d14;
      paramg_.u = d15;
      paramg_.v = d17;
    }
    label1168:
    label1191:
    localz.add(new e_(paramg_.g, -1.797693134862316E+308D, 0.0D, 0.0D, 0.0D, false));
    a(paramz, localz);
    a(paramz);
    return paramg_.h + paramg_.g - paramg_.v + paramg_.i;
  }
  
  private static void a(z paramz1, z paramz2)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    if (!bool2) {
      if (paramz1.isEmpty()) {
        paramz1.a(paramz2);
      }
    }
    if ((bool2) || ((bool1) && ((bool2) || (!paramz2.isEmpty()))))
    {
      v localv1 = paramz1.f();
      Object localObject1 = paramz2.f();
      e_ locale_1 = null;
      do
      {
        if (localv1 == null) {
          break;
        }
        if (bool1) {
          break label113;
        }
        if (!bool2)
        {
          if (b(localv1) >= b((v)localObject1)) {
            break;
          }
          locale_1 = (e_)localv1.c();
          localv1 = localv1.a();
        }
      } while (!bool1);
      if ((!bool2) && (localv1 == null))
      {
        label113:
        paramz1.a(paramz2);
        return;
      }
      v localv2 = paramz2.g();
      do
      {
        do
        {
          if (localObject1 == null) {
            break;
          }
          localObject2 = ((v)localObject1).a();
          paramz1.a((v)localObject1, localv1);
          localObject1 = localObject2;
          if ((!bool2) && (bool1)) {
            return;
          }
        } while (!bool1);
      } while (bool2);
      Object localObject2 = (e_)localv2.c();
      do
      {
        if (localv1 == null) {
          break;
        }
        if (bool1) {
          break label254;
        }
        if (b(localv1) >= ((e_)localObject2).b) {
          break;
        }
        locale_1 = (e_)paramz1.h(localv1);
        localv1 = localv1.a();
      } while (!bool1);
      if (!bool2)
      {
        if ((locale_1 == null) || ((!bool2) && (localv1 == null))) {
          return;
        }
        if (b(localv1) == ((e_)localObject2).b)
        {
          label254:
          paramz1.h(localv2);
          if (!bool1) {
            return;
          }
        }
      }
      double d1 = locale_1.c + (((e_)localObject2).b - locale_1.b) * locale_1.g;
      e_ locale_2 = new e_(((e_)localObject2).b, d1, locale_1.g, locale_1.d, locale_1.f, ((e_)localObject2).a);
      localv2.a(locale_2);
    }
  }
  
  private static double a(v paramv)
  {
    return ((e_)paramv.c()).c;
  }
  
  private static double b(v paramv)
  {
    return ((e_)paramv.c()).b;
  }
  
  private void a(z paramz)
  {
    boolean bool2 = d.R;
    boolean bool1 = d.Q;
    double d1 = -1.797693134862316E+308D;
    v localv = paramz.f();
    if (localv != null) {
      if (!bool2) {
        if (localv.c() == null) {
          throw new IllegalStateException("Cell.getInfo = null: " + localv);
        }
      }
    }
    while (bool2)
    {
      e_ locale_ = (e_)localv.c();
      if (!bool2)
      {
        if (locale_.b < d1) {
          throw new IllegalStateException("Wrong sorting of frontier!");
        }
        d1 = locale_.b;
        localv = localv.a();
      }
      if (!bool1) {
        break;
      }
    }
  }
  
  private double x()
  {
    return 0.0D;
  }
  
  private double y()
  {
    return 0.0D;
  }
  
  private g_ h(Object paramObject)
  {
    boolean bool = d.R;
    g_ localg_ = (g_)this.b.get(paramObject);
    if (!bool) {
      if (localg_ == null)
      {
        Object localObject = this.k.get(paramObject);
        if ((bool) || (localObject != null)) {
          return (g_)this.b.get(localObject);
        }
        throw new IllegalArgumentException("No such key registered!");
      }
    }
    return localg_;
  }
  
  public boolean z()
  {
    return this.p;
  }
  
  public void a(boolean paramBoolean)
  {
    this.p = paramBoolean;
  }
  
  public double A()
  {
    return this.r;
  }
  
  public void j(double paramDouble)
  {
    this.r = paramDouble;
  }
  
  static class g_
  {
    public static final byte a = 0;
    public static final byte b = 2;
    public static final byte c = 1;
    public static final byte d = 3;
    public final Object e;
    public final double f;
    public final double g;
    public double h;
    final double i;
    double j;
    double k;
    double l;
    double n = -1.797693134862316E+308D;
    double o = 1.7976931348623157E+308D;
    public double p;
    public double q;
    public byte r;
    public final boolean s;
    public double t = 20.0D;
    public double u;
    public double v;
    int w = -1;
    
    private g_(Object paramObject, double paramDouble1, double paramDouble2, double paramDouble3, byte paramByte, double paramDouble4, double paramDouble5, double paramDouble6, double paramDouble7, boolean paramBoolean, double paramDouble8, double paramDouble9, double paramDouble10)
    {
      this.l = Math.max(paramDouble6, paramDouble7);
      this.j = paramDouble6;
      this.k = paramDouble7;
      this.p = paramDouble4;
      this.q = paramDouble5;
      this.i = (paramDouble1 * 0.5D);
      this.e = paramObject;
      this.h = (0.0D / 0.0D);
      this.r = paramByte;
      this.f = paramDouble2;
      this.g = paramDouble3;
      this.s = paramBoolean;
      this.t = paramDouble8;
      this.u = paramDouble9;
      this.v = paramDouble10;
    }
    
    public byte a()
    {
      return this.r;
    }
    
    static g_ a(Object paramObject, double paramDouble1, double paramDouble2, boolean paramBoolean1, double paramDouble3, boolean paramBoolean2, double paramDouble4, double paramDouble5)
    {
      return a(paramObject, paramDouble1, paramDouble2, paramBoolean1, paramDouble3, paramBoolean2, -1.797693134862316E+308D, 1.7976931348623157E+308D, paramDouble4, paramDouble5);
    }
    
    static g_ a(Object paramObject, double paramDouble1, double paramDouble2, boolean paramBoolean1, double paramDouble3, boolean paramBoolean2, double paramDouble4, double paramDouble5, double paramDouble6, double paramDouble7)
    {
      return a(paramObject, paramDouble1, paramDouble2, paramBoolean1, paramDouble3, paramBoolean2, paramDouble4, paramDouble5, paramDouble6, paramDouble7, false, 0.0D);
    }
    
    static g_ a(Object paramObject, double paramDouble1, double paramDouble2, boolean paramBoolean1, double paramDouble3, boolean paramBoolean2, double paramDouble4, double paramDouble5, boolean paramBoolean3, double paramDouble6)
    {
      return a(paramObject, paramDouble1, paramDouble2, paramBoolean1, paramDouble3, paramBoolean2, -1.797693134862316E+308D, 1.7976931348623157E+308D, paramDouble4, paramDouble5, paramBoolean3, paramDouble6);
    }
    
    static g_ a(Object paramObject, double paramDouble1, double paramDouble2, boolean paramBoolean1, double paramDouble3, boolean paramBoolean2, double paramDouble4, double paramDouble5, double paramDouble6, double paramDouble7, boolean paramBoolean3, double paramDouble8)
    {
      if (paramDouble2 > paramDouble3) {
        return new g_(paramObject, paramDouble1, paramDouble3, paramDouble2, (byte)(paramBoolean1 ? 1 : paramBoolean2 ? 2 : paramBoolean1 ? 0 : 3), paramDouble4, paramDouble5, paramDouble6, paramDouble7, paramBoolean3, paramDouble8, paramDouble3, paramDouble2);
      }
      return new g_(paramObject, paramDouble1, paramDouble2, paramDouble3, (byte)(paramBoolean2 ? 1 : paramBoolean1 ? 2 : paramBoolean2 ? 0 : 3), paramDouble4, paramDouble5, paramDouble6, paramDouble7, paramBoolean3, paramDouble8, paramDouble2, paramDouble3);
    }
    
    g_(Object paramObject, double paramDouble1, double paramDouble2, double paramDouble3, byte paramByte, double paramDouble4, double paramDouble5, double paramDouble6, double paramDouble7, boolean paramBoolean, double paramDouble8, double paramDouble9, double paramDouble10, kb.0 param0)
    {
      this(paramObject, paramDouble1, paramDouble2, paramDouble3, paramByte, paramDouble4, paramDouble5, paramDouble6, paramDouble7, paramBoolean, paramDouble8, paramDouble9, paramDouble10);
    }
  }
  
  private static class h_
    implements Comparator, l.j_
  {
    private h_() {}
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      boolean bool = d.R;
      kb.g_ localg_1 = (kb.g_)paramObject1;
      kb.g_ localg_2 = (kb.g_)paramObject2;
      int i = localg_1.a();
      int j = localg_2.a();
      if (!bool) {
        if (i != j) {
          return l.a(i, j);
        }
      }
      if (!bool) {
        switch (i)
        {
        case 0: 
          if (!bool) {
            if (localg_1.f > localg_2.f)
            {
              if (bool) {
                break label136;
              }
              if (localg_1.g < localg_2.g) {
                return -1;
              }
            }
          }
          if (!bool) {
            if (localg_1.f <= localg_2.f)
            {
              if (bool) {
                break label174;
              }
              if (localg_1.g >= localg_2.g) {
                return 1;
              }
            }
          }
          if (!bool) {
            if (localg_1.g < localg_2.f) {
              return -1;
            }
          }
          if (!bool) {
            if (localg_1.g >= localg_2.f) {
              return 1;
            }
          }
          break;
        case 2: 
          if (!bool) {
            if (localg_1.f > localg_2.f)
            {
              if (bool) {
                break label252;
              }
              if (localg_1.g > localg_2.g) {
                return -1;
              }
            }
          }
          if (!bool) {
            if (localg_1.f <= localg_2.f)
            {
              if (bool) {
                break label290;
              }
              if (localg_1.g <= localg_2.g) {
                return 1;
              }
            }
          }
          if (!bool) {
            if (localg_1.f == localg_2.f)
            {
              if (!bool) {}
              return localg_1.g > localg_2.g ? -1 : 1;
            }
          }
          if (!bool) {
            if (localg_1.g == localg_2.g)
            {
              if (!bool) {}
              return localg_1.f > localg_2.f ? -1 : 1;
            }
          }
          if (!bool) {}
          return localg_1.f <= localg_2.f ? -1 : 1;
        case 1: 
          if (!bool) {
            if (localg_1.f < localg_2.f)
            {
              if (bool) {
                break label436;
              }
              if (localg_1.g < localg_2.g) {
                return -1;
              }
            }
          }
          if (!bool) {
            if (localg_1.f >= localg_2.f)
            {
              if (bool) {
                break label474;
              }
              if (localg_1.g >= localg_2.g) {
                return 1;
              }
            }
          }
          if (!bool) {
            if (localg_1.f == localg_2.f)
            {
              if (!bool) {}
              return localg_1.g < localg_2.g ? -1 : 1;
            }
          }
          if (!bool) {
            if (localg_1.g == localg_2.g)
            {
              if (!bool) {}
              return localg_1.f < localg_2.f ? -1 : 1;
            }
          }
          if (!bool) {}
          return localg_1.f >= localg_2.f ? -1 : 1;
        case 3: 
          label136:
          label174:
          label252:
          if (!bool) {
            if (localg_1.f < localg_2.f)
            {
              if (bool) {
                break label620;
              }
              if (localg_1.g > localg_2.g) {
                return -1;
              }
            }
          }
          label290:
          label436:
          label474:
          label620:
          if (!bool) {
            if (localg_1.f > localg_2.f)
            {
              if (bool) {
                break label658;
              }
              if (localg_1.g < localg_2.g) {
                return 1;
              }
            }
          }
          label658:
          if (!bool) {
            if (localg_1.g < localg_2.f) {
              return 1;
            }
          }
          if (!bool) {
            if (localg_2.g < localg_1.f) {
              return -1;
            }
          }
          break;
        }
      }
      int k = l.a(localg_1.f, localg_2.f);
      if (!bool) {
        if (k == 0)
        {
          k = l.a(localg_1.g, localg_2.g);
          if (!bool) {
            if (k == 0)
            {
              k = l.a(localg_1.f, localg_2.f);
              return -k;
            }
          }
          return k;
        }
      }
      return k;
    }
    
    h_(kb.0 param0)
    {
      this();
    }
  }
  
  private static final class e_
  {
    final boolean a;
    final double b;
    double c;
    final double d;
    final double f;
    final double g;
    
    e_(double paramDouble1, double paramDouble2)
    {
      this(paramDouble1, paramDouble2, 0.0D, 0.0D, true);
    }
    
    e_(double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4)
    {
      this(paramDouble1, paramDouble2, paramDouble3, paramDouble4, true);
    }
    
    e_(double paramDouble1, double paramDouble2, boolean paramBoolean)
    {
      this(paramDouble1, paramDouble2, 0.0D, 0.0D, paramBoolean);
    }
    
    e_(double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, boolean paramBoolean)
    {
      this(paramDouble1, paramDouble2, 0.0D, paramDouble3, paramDouble4, paramBoolean);
    }
    
    e_(double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, double paramDouble5, boolean paramBoolean)
    {
      this.f = paramDouble5;
      this.b = paramDouble1;
      this.d = paramDouble4;
      this.c = paramDouble2;
      this.a = paramBoolean;
      this.g = paramDouble3;
    }
  }
  
  private static class f_
  {
    private ArrayList a = new ArrayList();
    
    void a(kb.e_ parame_)
    {
      this.a.add(parame_);
    }
    
    void c(kb.e_ parame_)
    {
      this.a.remove(parame_);
    }
    
    kb.e_ a(double paramDouble)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      double d1 = -1.797693134862316E+308D;
      Object localObject = null;
      double d2 = -1.797693134862316E+308D;
      Iterator localIterator = this.a.iterator();
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        kb.e_ locale_ = (kb.e_)localIterator.next();
        double d4 = locale_.c + locale_.d;
        if (bool1) {
          break label122;
        }
        if (localObject != null)
        {
          if (bool2) {
            continue;
          }
          if (d4 <= d2) {}
        }
        else
        {
          localObject = locale_;
          d2 = d4;
        }
        d1 = Math.max(d1, d4 + locale_.f);
      } while (!bool1);
      if ((!bool2) && (localObject == null)) {
        label122:
        return null;
      }
      double d3 = d1 - d2;
      return new kb.e_(paramDouble, localObject.c, localObject.d, d3, localObject.a);
    }
  }
  
  private static class c_
    implements Comparable
  {
    static final byte a = 0;
    static final byte b = 1;
    private double c;
    private byte e;
    private kb.e_ g;
    
    c_(double paramDouble, byte paramByte, kb.e_ parame_)
    {
      this.c = paramDouble;
      this.e = paramByte;
      this.g = parame_;
    }
    
    boolean a()
    {
      if (!d.R) {}
      return this.e == 0;
    }
    
    public int compareTo(Object paramObject)
    {
      boolean bool = d.R;
      c_ localc_ = (c_)paramObject;
      if (!bool) {
        if (this.c < localc_.c) {
          return -1;
        }
      }
      if (!bool) {
        if (this.c > localc_.c) {
          return 1;
        }
      }
      return 0;
    }
  }
  
  private static final class d_
  {
    kb.g_ a;
    double c;
    boolean e;
    int f;
    
    private d_() {}
    
    d_(kb.0 param0)
    {
      this();
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.d.a.kb

 * JD-Core Version:    0.7.0.1

 */